tsubu_state=true;

window.onload = function(){
	if(typeof(Initialise) != "undefined")Initialise();
	if($("textarea_my"))check_tsubuyaki_my($("textarea_my"));
	if($("textarea_tsubu"))check_tsubuyaki($("textarea_tsubu"));
}

function check_text_length(elem,max_length){
	if(elem.value.length > max_length)return false;
	else return true;
}

function check_tsubuyaki(elem){
	if(!check_text_length(elem,150)){
		if($("warning")){
			$("warning").style.color =  "red";
			tsubu_state = false;
			$("warning").innerHTML="1つぶ150文字までです。現在の文字数:"+elem.value.length;
		}
		$("submit_neta").disabled=true;
		return false
	}
	tsubu_state = true;
	if($("warning")){
		$("warning").style.color = "#999999";
		$("warning").innerHTML="残り:" + (150 - elem.value.length) + "文字";
	}
	enable_submit_neta();
	return true;
}

function check_tsubuyaki_my(elem){
	if(!check_text_length(elem,150)){	
		if($("tsubu_message"))$("tsubu_message").style.color = "red";
		if($("tsubu_message"))$("tsubu_message").innerHTML="現在の文字数:"+elem.value.length+ "  ";
		tsubu_state = false;
		$("submit_my").disabled=true;
		return false
	}
	tsubu_state = true;
	if($("tsubu_message"))$("tsubu_message").style.color =  "#999999";
	if($("tsubu_message"))$("tsubu_message").innerHTML="残り:" + (150 - elem.value.length) + "  ";
	enable_submit_my();
	return true;
}

function check_comment(elem){
	if(!check_text_length(elem,100)){	
		if($("warning"))$("warning").innerHTML="文字数がオーバーしています。";
		$("submit").disabled=true;
		return false
	}
	$("submit").disabled=false;
	if($("warning"))$("warning").innerHTML="";
	return true;
}
 function check_em_width(str)
{
	for(i=0;i<str.length;i++){
		if(escape(str.charAt(i)).length>=4){
			return false;
		}
	}
	return true;
}
function check_URL(elem){
	if(!check_em_width(elem.value)){	
		if($("url_message"))$("url_message").innerHTML="   URL:不正な文字があります";
		$("submit_my").disabled=true;
		return false
	}
	if($("url_message"))$("url_message").innerHTML="";
	enable_submit_my();
	return true;
}
	
function check_submit(textarea_id){
	if($(textarea_id).value.match(/^[\s　]*$/)){
		$("warning").style.color =  "red";
		$("warning").innerHTML="何もつぶやいていません";
		return false;
	}
	else{
        var result = check_tsubuyaki($(textarea_id));
        if(result)$("submit_neta").disabled=true;
        return result;
    }
}

function check_submit_my(textarea_id){
	if($(textarea_id).value.match(/^[\s　]*$/)){
		$("tsubu_message").style.color =  "red";
		$("tsubu_message").innerHTML="何もつぶやいていません";
		return false;
	}
	else return (check_tsubuyaki_my($(textarea_id)) && check_URL($("input_my"))) ;
}

function check_policy(){
	if(!$("policy") || $("policy").checked)return true;
	else false;
}

function enable_submit_neta(){
	if((tsubu_state) && check_policy()){
		$("submit_neta").disabled=false;
	}
	else $("submit_neta").disabled=true;
}

function enable_submit_my(){
	if(($("url_message").innerHTML == "") && tsubu_state && check_policy() && ($("submit_my").value == "つぶやく")){
		$("submit_my").disabled=false;
	}
	else $("submit_my").disabled=true;
}
function HTMLescape(str){
	str=str.replace(/&/g,'&amp;');
	str=str.replace(/</g,'&lt;');
	str=str.replace(/>/g,'&gt;');
	str=str.replace(/"/g,'&quot;');
	return str;
}

function mumble_post(){
    if(!check_submit_my("textarea_my"))return false;
    var str = Form.serialize($("form_my"));
    
    $("submit_my").disabled = "true";
    $("submit_my").value = "ただいま、つぶやき中";
    
    new Ajax.Request("/ajax.php",{
        "method":"post",
        "parameters": str,
        onSuccess: function(request){
            var res;
            eval("res = "+request.responseText);
            if(res.status == 0){
	            res.mumble = HTMLescape(res.mumble);
	            res.nickname = HTMLescape(res.nickname);
	            $("textarea_my").value='';
	            $("input_my").value='';
	
	
	            var new_tsubu =  make_tsubu_table(res);
	            new Insertion.Top("box_intb_dl", new_tsubu);
	            
	            inc_mum_count();
	
	            new Effect.Grow("hkds_" + res.id,{
	                from:0.0,
	                to:1.0,
	                delay:0,
	                fps:60,
	                duration:1
	            });
	            
	            $("hkds_r"+res.id).style.display="block";
	        }
            else if(res.status == 21){
            	alert("不適切な表現の疑いがあるつぶやきです。");
            	//$("tsubu_message").innerHTML="不適切な表現の疑いがあるつぶやきです。";
            }
            else{
                alert("つぶやけませんでした。");
                //$("tsubu_message").innerHTML="つぶやきに失敗しました。");
            }
            
            $("submit_my").disabled = "";
            $("submit_my").value = "つぶやく";
        },
                
        onFailure: function(request){
            alert('通信に失敗しました。');
            $("submit_my").disabled = "";
            $("submit_my").value = "つぶやく";
        },
        
		onException : function(request){
        	alert('通信に失敗しました。');
            $("submit_my").disabled = "";
            $("submit_my").value = "つぶやく";
        }
    });
}

function make_tsubu_table(a){
	var new_tsubu =  "<div id=\"hkds_" + a.id + "\" class=\"cl_both\" style=\"display:none\">"+
                     "<div class=\"box_intb_dl_l\" >"+
                     "<a href=\"/user/" + a.eid + "/\">";
                                    
	new_tsubu += "<img src=\"" + $("my_icon").src + "\" " +
				 "width=\"45\" alt=\"\" border=\"0\" class=\"icon_m\" style=\"padding:1px; border: 1px solid #" + a.color + ";\" /></a>";

	new_tsubu += "</div>" +
				 "<div class=\"box_intb_dl_r\">" +
				 "<div id=\"hkds_r"+a.id+"\" class=\"hkds\" style=\"display: none; border: 1px solid #" + a.color + "; color:#" + a.color + ";\">" +
				 "<p style=\"background: url(http://image.excite.co.jp/jp/tsublog/theme_color/" + a.color + ".gif) no-repeat left 10px;\">";

	if(a.topic_url_hash != ''){
		new_tsubu += "<a href=\"/topic/" + a.topic_url_hash + "/\"><img src=\"http://image.excite.co.jp/jp/tsublog/hkds_neta.gif\" width=\"15\" height=\"16\" alt=\"\" border=\"0\" /></a> ";
	}

	if(a.reference_id != '0'){
		new_tsubu += "<a href=\"/mumble/" + a.reference_id + "/\"><img src=\"http://image.excite.co.jp/jp/tsublog/hkds_comview.gif\" width=\"16\" height=\"16\" alt=\"\" border=\"0\" /></a>";
	}

	new_tsubu += "<a href=\"/mumble/" +a.id+ "/\" style=\"color:#" + a.color +"; text-decoration:none;\">" + a.mumble + " </a> <a href=\"/user/" + a.eid + "/\">"+ a.nickname + "</a> <span class=\"hkds_date\">["+ a.timestamp_str + "]</span>";

	if(a.topic_url_hash == '' && a.reference_id == '0'){
		new_tsubu += " <a href=\"/mumble/" + a.id + "\"><img src=\"http://image.excite.co.jp/jp/tsublog/hkds_comedit.gif\" width=\"15\" height=\"14\" alt=\"\" border=\"0\" /></a><b class=\"hkds_date\">0</b>";
	}

	new_tsubu += "<span id=\"delate_"+ a.id + "\" class=\"hkds_delate\"><a href=\"\"onclick=\"delete_mumble_Confirm('" + a.id + "'); return false;\"><img src=\"http://image.excite.co.jp/jp/tsublog/hkds_gmbk.gif\" width=\"15\" height=\"15\" alt=\"削除\" border=\"0\" /></a></span>"+
	"<br style=\"clear:right;\" />&nbsp;";
                                    
	new_tsubu += "</p></div></div></div>";
	return new_tsubu;
}

function delete_mumble(id){
    var str = "?method=delete_mumble&mumble_id="+ id;
    $("del_yes_"+id).onclick = function(){return false;};
    new Ajax.Request("/ajax.php",{
        "method":"post",
        "parameters": str,
    
        onSuccess: function(request){
            var a;
            eval("a = "+request.responseText);
            
            if(a.status == 0){
            new Effect.Parallel([
            new Effect.Puff("hkds_"+id,{
                from:0.0,
                to:1.0,
                delay:0,
                fps:60,
                duration:1.5
            }),
            new Effect.MoveBy("hkds_"+id,0,0)
            ]);
            dec_mum_count();
            }
            else{
                $("delete_"+id).innerHTML="消せませんでした。";
                
            }
        },
    
        onFailure: function(request){
            alert('send Failure');
            $("delete_"+id).innerHTML="消せませんでした。";
        },
        onException : function(request,e){
        	alert('例外が発生しました。'+e);
        	//$("delete_"+id).innerHTML="消せませんでした。";
           
        }

    });

}

function delete_mumble_Confirm(id){
    var child = $("delate_"+ id).lastChild;
    var parent = child.parentNode;
    child.style.display="none";
    var str = "<span id=\"del_confirm_"+id+"\">消すの？　<a href=\"\"id=\"del_yes_"+id+"\">YES</a>/ <a href=\"\" onclick=\"delete_mumble_back('" + id + "'); return false;\">NO</a></span>"
    new Insertion.Top(parent, str);
    $("del_yes_"+id).onclick = function(){
    	delete_mumble(id); return false;
    };
}

function delete_mumble_back(id){
    $("del_confirm_"+id).remove();
    $("delate_"+ id).lastChild.style.display="block";
}


function inc_mum_count(){
    if($("mum_count"))$("mum_count").innerHTML++;
}

function dec_mum_count(){
    if($("mum_count"))$("mum_count").innerHTML--;
}


function friendConfirm() {
    var parent = $("add_friend").parentNode;
    var grandparent = parent.parentNode;
    $("add_friend").style.display = "none";
    if ($("method").value == "add_friend") {
        var str = "<span id=\"confirm\">"+$("nickname").value + "さんを"+ $("term_for_friend").value.escapeHTML() + "リストに加えますか？　　<a href=\"\" onclick=\"add_friend(); return false;\">YES</a> / <a href=\"\" onclick=\"friendConfirm_back(); return false;\">NO</a></span>";
    }
    else if ($("method").value == "remove_friend") {
        var str =  "<span id=\"confirm\">"+$("nickname").value + "さんを"+ $("term_for_friend").value.escapeHTML() + "リストから外しますか？　　<a href=\"\" onclick=\"add_friend(); return false;\">YES</a> / <a href=\"\" onclick=\"friendConfirm_back(); return false;\">NO</a></span>";
    }
    new Insertion.Top(parent,str);
}


function friendConfirm_back(){
    $("confirm").remove();
    $("add_friend").style.display="inline";
}

function add_friend(){
    var str = Form.serialize($("form_add_friend"));
    var parent = $("add_friend").parentNode;
    $("confirm").remove();
    
    new Ajax.Request("/ajax.php",{
        "method":"post",
        "parameters": str,
        onSuccess: function(request){
            var a;
            eval("a = "+request.responseText);
            //alert(request.responseText);
            if(a.status == 0){
                if($("method").value == "add_friend")var message = "<span id=\"res\">"+$("nickname").value+"さんを"+ $("term_for_friend").value.escapeHTML() + "リストに追加しました。</span>";
                else if($("method").value == "remove_friend"){
                    var message = "<span id=\"res\">"+$("nickname").value+"さんを"+ $("term_for_friend").value.escapeHTML() + "リストから外しました。</span>";
                }
                new Insertion.Top(parent,message);
            }
            
            else{
                if($("method").value == "add_friend"){
                    var message = "<span id=\"res\">"+$("nickname").value+"さんは既に"+ $("term_for_friend").value.escapeHTML() + "です。</span>";
                }
                else if($("method").value == "remove_friend"){
                var message = "<span id=\"res\">"+$("nickname").value+"さんはそもそも"+ $("term_for_friend").value.escapeHTML() + "じゃないです。</span>"; 
                }
                new Insertion.Top(parent,message);
            }

            new Effect.Fade("form_user_add",{
                from: 1.0,
                to: 0.0,
                delay: 5,
                fps: 60,
                duration: 1
            });
        },

        onFailure: function(request){
            alert('send Failure');
             var message = "<span id=\"res\">変更できませんでした。</span>";
             new Insertion.Top(parent,message);
        },
        onException : function(request,e){
        	 alert('例外が発生しました。'+e);
        	 //var message = "<span id=\"res\">変更できませんでした。</span>";
        	 //new Insertion.Top(parent,message);
        }
    });

}


function appear_TitleChangefield(){
	var title = $("topic_title").innerHTML;
	var url_hash = (document.URL).split("/")[4];
	$("topic_title_place").style.display="none";
	var str = "<form id=\"title_change\"><input type=\"text\" id=\"new_title\" name=\"title\" value=\"" + title +
			  "\" style=\"width:100%; left:3px;\" maxlength=150><div align=\"right\"><a href=\"\" id=\"ok\">"+
			  "<small>OK</small></a> / <a href=\"\" id=\"cancel\">cancel</a></div>"+
			  "<input type=\"hidden\" name=\"method\" value=\"update_topic_title\">"+
			  "<input type=\"hidden\" name=\"url_hash\" value=\"" + url_hash +"\">"+
			  "</form>";

	new Insertion.Before($("topic_title_place"),str);
	$("title_change").onsubmit = function(){changeTitle(); return false;}
	$("ok").onclick = function(){changeTitle(); return false;}
	$("cancel").onclick = function(){remove_TitleChangefield(); return false;};
}

function changeTitle(){
	$("title_change").disable="true";
	$("ok").onclick = function(){return false;}
	$("cancel").onclick = function(){return false;};
	var old_title = $("topic_title").innerHTML;
	var new_title = $("new_title").value;
	if(new_title != old_title && new_title != ""){
		send_newTitle();
	}
	else{
	remove_TitleChangefield();
	}
}

function remove_TitleChangefield(){
	$("title_change").remove();
	$("topic_title_place").style.display="block";
}

function send_newTitle(){
    var str = Form.serialize($("title_change"));
    new Ajax.Request("/ajax.php",{
    	"method":"post",
    	"parameters":str,
    	"asyncflag": "true",
    	onSuccess: function(request){
	    	var a;
	    	eval("a = "+request.responseText);
	    	if(a.status == 0){
	    		$("topic_title").innerHTML = $("new_title").value;
	    	}
	    remove_TitleChangefield();
	    },
	    
	    onFailure: function(request){
	    	alert('send Failure');
	    	remove_TitleChangefield();
	    }
	});
}

function toggle_notice(){
	if($("notice").style.display == "none"){
		$("notice").style.display ="block";
		$("alert_tbyk").firstChild.innerHTML = "X通報しない";
	}
	else if($("notice").style.display == "block"){
		$("notice").style.display ="none";
		$("alert_tbyk").firstChild.innerHTML = "X通報する";
	}
}

function send_notice(){
	if(!check_notice())return;
    $("notice_btn").disabled = true;
	var str = Form.serialize($("form"));
	

    new Ajax.Request("/ajax.php",{
        "method":"post",
        "parameters": str,
    
        onSuccess: function(request){
            var res;
            eval("res = "+request.responseText);
            
            if( res.status == 0){
            	toggle_notice();
            	$("alert_tbyk").style.textAlign = "center";
	            $("alert_tbyk").innerHTML = "<b style=\"color:red\">通報しました</b>";
	        }
            else{
                $("notice_btn").disabled = false;
                $("alert_tbyk").firstChild.innerHTML = "送信できませんでした。";
                
            }
        },
    
        onFailure: function(request){
            $("notice_btn").disabled = false;
            alert('send Failure');
        }

    });

}

function check_notice(){
	if($("form").message.value.match(/^[\s　]*$/)){
		$("notice_alert").innerHTML="通報の内容は必須です。";
		return false;
	}
	$("notice_alert").innerHTML="";
	return true;
}
