// Last Modified : 2009-10-26

/********************************************************
*		Studio Misty Main Script						*
********************************************************/

// Modify Data Button
function ModifyMusicData(music_id)
{
	document.getElementById("fomMain").item("mode").value = "mod";
	document.getElementById("fomMain").item("music_id").value = music_id;
	document.getElementById("fomMain").submit();
}

// Delete Data Button
function DeleteMusicData(id){
	if( confirm("本当に削除していいの？") ){
		alert("未実装です！＞＜");
	}
}

// Audition Radio when Audition On has been pressed
function prAudition(flg)
{
	document.getElementById("fomRegist").new_sample.disabled = !flg;
	document.getElementById("fomRegist").samplefilename.disabled = !flg;
	document.getElementById("fomRegist").reupload_check2.disabled = !flg;
}

// Copy the value of form1 to the value of form2
function cpValue(form1,form2,name1,name2){
	eval( 'document.getElementById("'+ form1 +'").'+ name1 +'.value = document.getElementById("'+ form2 +'").'+ name2 +'.value' );
}

// Check All Input Values
function prInputChkMusic(){
	var chk = true;
	var err_index = 1;
	var err = "";

/*
	// Title
	if( document.getElementById("title").value=="" ){
		chk = false;
		err += err_index + " : 楽曲のタイトルが入力されていません。\n";
		err_index++;
	}
	// English Title
	if( document.getElementById("title_en").value=="" ){
		chk = false;
		err += err_index + " : 楽曲の英語タイトルが入力されていません。\n";
		err_index++;
	}
	// Category = BMS && URL is input
	if( document.getElementById("fomRegist").category.options[document.getElementById("fomRegist").category.selectedIndex].text=="BMS"
				&& !document.getElementById("fomRegist").download_url.checked
	){
		chk = false;
		err += err_index + " : BMSの場合は、公開URLを入力してください。\n";
		err_index++;
	}
	// Genre
	if( document.getElementById("genre").value=="" ){
		chk = false;
		err += err_index + " : 楽曲のジャンルが入力されていません。\n";
		err_index++;
	}
	// Source
	if( document.getElementById("fomRegist").category.options[document.getElementById("fomRegist").category.selectedIndex].text=="アレンジ"
				&& document.getElementById("source").value==""
	){
		chk = false;
		err += err_index + " : 楽曲の原曲出典が入力されていません。\n";
		err_index++;
	}
	if( document.getElementById("fomRegist").category.options[document.getElementById("fomRegist").category.selectedIndex].text=="アレンジ"
				&& document.getElementById("source_en").value=="" ){
		chk = false;
		err += err_index + " : 英語の原曲出典が入力されていません。\n";
		err_index++;
	}

	// File Name
	if( document.getElementById("fomRegist").download_normal.checked &&
			document.getElementById("reupload_check1").checked && !document.getElementById("new_file").value.match(/.mp3$|.zip$/i) ){
		chk = false;
		err += err_index + " : ファイル名の指定が不正です。mp3またはZip形式のファイルのみアップロードできます。\n";
		err_index++;
	}
	// Sample File Name
	if( document.getElementById("reupload_check2").checked && document.getElementById("fomRegist").sample[0].checked && !document.getElementById("new_sample").value.match(/sample_\w*.mp3/i) ){
		chk = false;
		err += err_index + " : 試聴ファイル名の指定が不正です。mp3のみアップロードできます。\n";
		err_index++;
	}
*/
	if(chk){
	    // Call Upload PHP
	    if( confirm("登録してもよろしいですか？") ){
			document.getElementById("fomRegist").submit();
		}
	}
	else{
	    // Pop Error Message
		alert(err);
	}
}

// Open Source Form for Arrange
function toggleSource(){
	if( document.getElementById("fomRegist").category.options[document.getElementById("fomRegist").category.selectedIndex].text=="アレンジ" ){
		document.getElementById('source_tr').style.display = 'block';
		document.getElementById('source_en_tr').style.display = 'block';
	}
	else{
		document.getElementById('source_tr').style.display = 'none';
		document.getElementById('source_en_tr').style.display = 'none';
	}
}

// Open Url From for BMS
function toggleUrl(){
	if( document.getElementById("fomRegist").category.options[document.getElementById("fomRegist").category.selectedIndex].text=="BMS" ){
		document.getElementById('URLTextBox').style.display = 'block';
		document.getElementById("fomRegist").download_url.checked = true;
		document.getElementById("fomRegist").download_muzie.checked = false;
		document.getElementById("fomRegist").download_muzie.disabled = true;
	}
	else{
		document.getElementById('URLTextBox').style.display = 'none';
		document.getElementById("fomRegist").download_url.checked = false;
		document.getElementById("fomRegist").download_muzie.disabled = false;
	}
}

// toggle display
// Display and Hidden specified Element by ID
function toggleDisplay(id){
	document.getElementById(id).style.display=
		(document.getElementById(id).style.display=="none") ? "block":"none";
}

// toggle disable
function toggleDisable(id){
	eval(
	'document.getElementById("fomRegist").' + id + '.disabled = (document.getElementById("fomRegist").' + id + '.disabled) ? false : true'
	);
}

// Check All Input Values
function prInputChkLink(){
	var chk = true;
	var err_index = 1;
	var err = "";

	// Title
	if( document.getElementById("title").value=="" ){
		chk = false;
		err += err_index + " : タイトルが入力されていません。\n";
		err_index++;
	}
	// English Title
	if( document.getElementById("title_en").value=="" ){
		chk = false;
		err += err_index + " : 英語タイトルが入力されていません。\n";
		err_index++;
	}
	// URL
	if( document.getElementById("url").value=="" ){
		chk = false;
		err += err_index + " : URLが入力されていません。\n";
		err_index++;
	}
	if(chk){
	    // Call Upload PHP
	    if( confirm("登録してもよろしいですか？") ){
			document.getElementById("fomRegist").submit();
		}
	}
	else{
	    // Pop Error Message
		alert(err);
	}
}

// Check All Input Values
function prInputChkWork(){
	var chk = true;
	var err_index = 1;
	var err = "";
	// Title
	if( document.getElementById("title").value=="" ){
		chk = false;
		err += err_index + " : タイトルが入力されていません。\n";
		err_index++;
	}
	// English Title
	if( document.getElementById("title_en").value=="" ){
		chk = false;
		err += err_index + " : 英語タイトルが入力されていません。\n";
		err_index++;
	}
	if(chk){
	    // Call Upload PHP
	    if( confirm("登録してもよろしいですか？") ){
			document.getElementById("fomRegist").submit();
		}
	}
	else{
	    // Pop Error Message
		alert(err);
	}
}

// Check All Input Values
function prInputChkNote(){
	var chk = true;
	var err_index = 1;
	var err = "";

	// Title
	if( document.getElementById("title").value=="" ){
		chk = false;
		err += err_index + " : タイトルが入力されていません。\n";
		err_index++;
	}
	// English Title
	if( document.getElementById("title_en").value=="" ){
		chk = false;
		err += err_index + " : 英語タイトルが入力されていません。\n";
		err_index++;
	}
	// Key
	if( document.getElementById("keywd").value=="" ){
		chk = false;
		err += err_index + " : キーが入力されていません。\n";
		err_index++;
	}
	// Include
	if( document.getElementById("contents").value=="" ){
		chk = false;
		err += err_index + " : インクルードファイルが入力されていません。\n";
		err_index++;
	}
	if(chk){
	    // Call Upload PHP
	    if( confirm("登録してもよろしいですか？") ){
			document.getElementById("fomRegist").submit();
		}
	}
	else{
	    // Pop Error Message
		alert(err);
	}
}

// Open the Liner Notes Editing Window
function prEditLinerNotes(id){
	win = window.open("admin_liner.php?target_id="+id);
	win.focus();
}


// set No Banner IMG URL
function setNoBanner(){
	document.getElementById("banner").value = "./img/no_banner.png";
}

// back URL
function goBack(){
	history.back();
}

// Insert HTML Tags into TextArea
function insertTagsIntoTxtArea(txtArea, tags){
	var tag = "<"+tags+"></"+tags+">\n";
	var tarea = document.getElementById(txtArea);

	tarea.focus();

	if (/*@cc_on!@*/false) { // IE
		var sel = document.selection.createRange();
	    sel.text = tag;
	    var pos = Math.floor(tag.length / 2) + 1;
	    sel.move('character', -pos);
	    sel.select();
	}
	else {
		var body = tarea.value;
		var at   = tarea.selectionStart;
		var tmp  = body.substr(0, at);

		tarea.value = tmp + tag + body.substr(at, body.length);
		var cursor = Math.floor(tag.length/2+1) + at;
		tarea.setSelectionRange(cursor, cursor);
	}

	document.getElementById(name).value='';

}

// Comment Post Button
function prPostComment(len){

	var error = false;
	var msg = "";

    // Input check for Name text box
	if(document.getElementById("fomComment").name.value.length == 0){
        msg += "・お名前が入力されていません。(Please input your name.)\n";
        error = true;
	}

	// Input check for Comment text area
	if(document.getElementById("fomComment").comment.value.length > len){
		msg += "・入力できる最大文字数（"+len+"）を超えています。現在"+document.getElementById("fomComment").comment.value.length+"文字 (Please write comment less than "+len+" letters.)\n";
		error = true;
	}
	else if(document.getElementById("fomComment").comment.value.length == 0){
	    msg += "・コメントが入力されていません。(Please input your comment.)\n";
	    error = true;
	}

	// URL Input check
	var url = document.getElementById("fomComment").url.value;
	if( (url != "") &&
		!url.match(/(http|ftp):\/\/[!#-9A-~]+\.+[a-z0-9]/i) &&
		(url != "http://")
	){
	    msg += "・URLが不正です。(Input URL is wrong.)\n";
	    error = true;
	}

	// MailAddress Input check
	var mail = document.getElementById("fomComment").mail.value;
	if( (mail != "") &&
		!mail.match(/^\S+@\S+\.\S+$/)
	){
	    msg += "・メールアドレスが不正です。(Input mail address is wrong.)\n";
	    error = true;
	}

	if(!error){
		return true;
	}
	else{
		alert(msg);
		return false;
	}

}

// Message Post Button
function prPostMessage(){

	var error = false;
	var msg = "";

	if(document.getElementById("fomMessage").Message.value.length == 0){
	    msg += "・メッセージが入力されていません。(Please input your message.)\n";
	    error = true;
	}

	if(!error){
		document.getElementById("fomMessage").submit();
	}
	else{
		alert(msg);
	}

}

// Modify Data Button
function ModifyLinkData(id)
{
	document.getElementById("fomMain").item("mode").value = "mod";
	document.getElementById("fomMain").item("id").value = id;
	document.getElementById("fomMain").submit();
}

// Modify Data Button
function ModifyWorkData(id)
{
	document.getElementById("fomMain").item("mode").value = "mod";
	document.getElementById("fomMain").item("id").value = id;
	document.getElementById("fomMain").submit();
}

// Modify Data Button
function ModifyNoteData(id)
{
	document.getElementById("fomMain").item("mode").value = "mod";
	document.getElementById("fomMain").item("id").value = id;
	document.getElementById("fomMain").submit();
}

// Jump to Regist New Registration Page
function prGoNewRegistPage(url){
	if( confirm("編集中のデータを破棄し、新規登録画面に移動してもよろしいですか？") ){
		location.href=url;
	}
}

// toggle check all checkbox when the "All" checkbox is clicked
function checkAll(){
	if(document.getElementById("showAll").checked){
		document.getElementById("showAll").checked 			= true;
		document.getElementById("showMusicInfo").checked 	= true;
		document.getElementById("showMusicArtist").checked 	= true;
		document.getElementById("showMusicFavorite").checked= true;
		document.getElementById("showMakerShop").checked 	= true;
		document.getElementById("showCgIllust").checked 	= true;
		document.getElementById("showFriend").checked 		= true;
	}
	else{
		document.getElementById("showAll").checked 			= false;
		document.getElementById("showMusicInfo").checked 	= false;
		document.getElementById("showMusicArtist").checked 	= false;
		document.getElementById("showMusicFavorite").checked= false;
		document.getElementById("showMakerShop").checked 	= false;
		document.getElementById("showCgIllust").checked 	= false;
		document.getElementById("showFriend").checked 		= false;
	}
}

// if the offset height is lower than a height of a client, then resize it
function resizeHeight(){

	var pageHeight = document.getElementById('BaseMainContainer').offsetHeight;
	var clientHeight;

	// Safari
	if (navigator.appVersion.indexOf("Safari") > -1){
		clientHeight = window.innerHeight;
	}
	// Opera
	else if (window.opera) {
		clientHeight = document.body.clientHeight;
	}
	// IE
	else if (document.all) {
		clientHeight = document.documentElement.clientHeight;
	}
	// Netscape
	else if (document.layers) {
		clientHeight = document.body.clientHeight;
	}
	// Firefox
	else if (document.getElementById) {
		clientHeight = document.body.clientHeight;
	}
	// Others
	else {
		clientHeight = window.innerHeight;
	}
	//alert("ページの高さ＝"+pageHeight+"\nクライアントの高さ＝"+clientHeight);
	if( clientHeight - 150 > pageHeight ){
		document.getElementById('BaseMainContainer').style.height = clientHeight - 150;
	}
}

// replace amazon image if the image size is 1*1px
function replaceImage(img) {
  if (img.width == '1' && img.src.match(/\.01\./)) {
    img.src = 'http://images-jp.amazon.com/images/G/09/nav2/dp/no-image-no-ciu._AA150_.gif';
  } else if (img.width == '1') {
    img.src = img.src.replace('.09.','.01.');
  }
}

// called when page has been loaded
function init(){
	//resizeHeight();
}

//jQuery Scripts

	// footer anchor effects
	$(function(){
		 $('#Footer a').hover(
			function(){
				$(this).animate( {opacity : "0.5"}, 200 );
	   	 	},
			function(){
				$(this).animate( {opacity : "1.0"}, 200 );
	   	});
	});

	// MainContainer and LeftTower anchor effects
	$(function(){
		$('#MainContainer a, #LeftTower a').hover(
			function(){
			    if( !$(this).hasClass('Fixed') ){
					$(this).animate( {opacity : "0.5", left : "3px"}, 200, "linear" );
				}
	   	 	},
			function(){
				if( !$(this).hasClass('Fixed') ){
					if( jQuery.browser.msie ){
						$(this).animate( {opacity : "1.0", left : "0px"}, 200, "linear",
							function(){
							    this.style.removeAttribute("filter");
							    this.style.visibility = "hidden";
							    this.style.visibility = "visible";
							}
						);
					}
					else{
						$(this).animate( {opacity : "1.0", left : "0px"}, 200, "linear" );
					}
				}
	   	 	});
	});

	// Menu anchor effects
	$(function(){
		$('#Menu a').hover(
			function(event){
				$(this).animate( {opacity : "0.5"}, 200 );
				var p = $(this).position();
				$(this).next("em").stop(true, true)
					.css("top", p.top+35).css("left", p.left)
    	 			//.animate({opacity: "show", left: p.left+50}, 300, "easeOutCirc");
    	 			.slideDown( 500, "easeOutQuart" );
	   	 	},
			function(event){
				$(this).animate( {opacity : "1.0"}, 200 );
				$(this).next("em").stop(true, true)
					.slideUp( 500, "easeOutQuart");
	   	 	});
	});
	
	// Comment Loader
	$(function(){
		$('.DiaryFooterComment').click(
			function(){
			    if( $(this).parent().next("div").css("display") == 'block' ){
			        return false;
				}
			    var pId = $(this).attr("title");
				var pLang = document.getElementById("CurrentLanguage").value;
				$(".DiaryComment").slideUp( 1200, "easeOutQuart");

				$(this).parent().next("div").load("./module_comment.php",
					{id : pId, lang : pLang},
					function(text, status){
					    if( status == 'success' ){
							$(this).slideDown(1200, "easeOutQuart");
							$(this).find("#fomComment #name").attr("value", $.cookie("Name"));
							$(this).find("#fomComment #mail").attr("value", $.cookie("Mail"));
							$(this).find("#fomComment #url").attr("value", $.cookie("Url"));
							if( $.cookie("Save") ){
								$(this).find("#fomComment #SaveCookie").attr("checked", "checked");
							}
						} else {
						    $(this).html("コメントフォームのロードに失敗しました。再度実行してください。<br />Failed to load the comment form. Try again please.<br /><a href=\"#\" onclick=\"this.parentNode.style.display='none';return false;\">×閉じる</div>");
							$(this).slideDown(1200, "easeOutQuart");
						}
					}
				);
			    return false;
			}
		);
	});
	
	// Message Cookie Saver
	$(function(){
		$('#fomMessage #SaveCookie').click(
			function(){
				var messageForm = document.getElementById("fomMessage");
			    var name = messageForm.name.value;
			    var mail = messageForm.mail.value;
			    var save = messageForm.saveCookie.value;
				if( this.checked ){
				    $.cookie("Name", name, { expires: 30 });
				    $.cookie("Mail", mail, { expires: 30 });
				    $.cookie("Save", save, { expires: 30 });
				}
				else{
				    $.cookie("Name", "", { expires: 0 });
				    $.cookie("Mail", "", { expires: 0 });
				    $.cookie("Save", "", { expires: 0 });
				}
			}
		);
	});
	

	// Music Tab
	function showMusicCategory(category, mode){
	    $(".MusicList:visible").animate( {opacity:"hide"}, 300, function(){
		    if( mode == 0 ){
				$(".MusicList").removeClass("Simple");
			}
			else if( mode == 1 ){
				$(".MusicList").addClass("Simple");
			}
	    	if( !jQuery.browser.msie ){
				$("div#Category_"+category).animate( {opacity:"show"}, 300 );
			}
			else{
				$("div#Category_"+category).animate( {opacity:"show"}, 300,
					function(){
					    this.style.removeAttribute("filter");
					    this.style.visibility = "hidden";
					    this.style.visibility = "visible";
					}
				);
			}
		});
	}
	
	$(function(){
		$(".MusicTab a").click(
			function(){
			    var category = ($(this).attr("title")).replace("Category_", "");
				showMusicCategory(category, -1);
				$(".MusicTab a").animate({ backgroundColor : "#C1CDD6", color:"#445D6F" }, 300);
				$(this).animate({ backgroundColor : "#445D6F", color:"#C1CDD6" }, 300);
				this.blur();
				return false;
			}
		);
		
		$(".ChangeMode #Detail").click(
		    function(){
				$(this).animate( {opacity:"hide"}, 300, function(){
				    $(".ChangeMode #List").animate( {opacity:"show"}, 300 );
				} );
				var category = $(".MusicList:visible").attr("id").replace("Category_","");
				showMusicCategory(category, 0);
				return false;
			}
		)
		
		$(".ChangeMode #List").click(
		    function(){
				$(this).animate( {opacity:"hide"}, 300, function(){
				    $(".ChangeMode #Detail").animate( {opacity:"show"}, 300 );
				} );
				var category = $(".MusicList:visible").attr("id").replace("Category_","");
				showMusicCategory(category, 1);
				return false;
			}
		)
		
	});
	
	
	// Link Tab
	$(function(){
		$(".LinkTab a").click(
			function(){
			    var category = ($(this).attr("id")).replace("Category_", "");
			    $(".LinkList:visible").animate( {opacity:"hide"}, 300, function(){
			    	if( !jQuery.browser.msie ){
						$(".LinkList#LinkList_"+category).animate( {opacity:"show"}, 300 );
					}
					else{
						$(".LinkList#LinkList_"+category).animate( {opacity:"show"}, 300,
							function(){
							    this.style.removeAttribute("filter");
							    this.style.visibility = "hidden";
							    this.style.visibility = "visible";
							}
						);
					}
				});
				
				$(".LinkTab a").animate({ backgroundColor : "#C1CDD6", color:"#445D6F" }, 300);
				$(this).animate({ backgroundColor : "#445D6F", color:"#C1CDD6" }, 300);
				this.blur();
				return false;
			}
		);
	});

	
	// thumbnail popup
	$(function(){
		$("a[href^='http://']").hover(
			function(event){
			    // except Amazon Link
			    if( $(this).attr("href").match(/.*amazon\.jp.*/i) ){
					return false;
				}
					var p = $(this).position();
					var url = $(this).attr("href");
	   				$("#LinkPop > #LinkThumb").attr("src", "").attr( "src", "http://capture.heartrails.com/80x80/shadow?" + $(this).attr("href") );
	   				$("#LinkPop .LinkTitle").text("Loading...");
	   				$("#LinkPop .LinkUrl").text("");
	   				$("#LinkPop .LinkDescription").html("<img src='img/common/loading.gif' />");
					$.ajax({
					    url:"./module_get_page_info.php?url=" + url,
					    cache:true,
					    dataType:"xml",
					    success:function(xml){
					        $("#LinkPop .LinkTitle").text( $(xml).find("title").text() );
					        $("#LinkPop .LinkUrl").text(url);
					        $("#LinkPop .LinkDescription").text( $(xml).find("desc").text() );
					    },
					    error: function(xml){
					    	$("#LinkPop .LinkTitle").html("Failed to get this page information.");
					    	$("#LinkPop .LinkUrl").text("");
					    	$("#LinkPop .LinkDescription").html("");
							return false;
						}
					});

					if( jQuery.browser.msie ){
						$("#LinkPop").stop(true, true).css("top", p.top+50).css("left", p.left)
							.animate({opacity : "show", top: p.top+30}, 300, "easeOutCirc",
							function(){
							    this.style.removeAttribute("filter");
							    this.style.visibility = "hidden";
							    this.style.visibility = "visible";
							});
					}
					else{
						$("#LinkPop").stop(true, true).css("top", p.top+50).css("left", p.left)
							.animate({opacity : "show", top: p.top+30}, 300, "easeOutCirc");
					}
	   	 	},
			function(event){
				$("#LinkPop").stop(true, true).hide(300);
	   	 	});
	});

	// onload events
	$(document).ready(function(){
		$("#Menu a").next("em").stop(true, true)
			.wrapInner('<div class="Contents"></div>')
			.prepend('<div class="Header"></div>')
			.append('<div class="Footer"></div>');

		$("a[href^='http://']").each(function(){
		    var title = $(this).text();
			if( title != "" ){
				$(this).append('<img src="img/common/out_link.png" alt="'+title+'" style="margin-left:4px;" />');
			}
			$(this).attr("target", "_new");
		});

		// initialize twitter module
		twitter(1);

		// Nico Nico Douga
		$(".NicoNico").each( function(){
				var nico = $(this).attr("id");
				var link = '<a href="http://www.nicovideo.jp/watch/' + nico + '"></a>';
				var iframe = '<iframe width="312" height="176" src="http://ext.nicovideo.jp/thumb/' + nico + '" scrolling="no" style="border:solid 1px #CCC;" frameborder="0"></ifram>'
				$(this).wrapInner(link);
				$(this).wrapInner(iframe);
		});
		
	});

// Twitter paging
function twitterNext(){
    var cur = document.getElementById("TwitterCurrentPage").value;
    if( cur == 10 ){
        cur = 0;
    }
    twitter( parseInt(cur) + 1 );
}
function twitterPrev(){
    var cur = document.getElementById("TwitterCurrentPage").value;
    if( cur == 1 ){
        cur = 11;
    }
    twitter(cur-1);
}
function twitter(page){
    var cur = document.getElementById("TwitterCurrentPage").value;
    if( page != cur ){
	    $('#Twitter'+cur).animate( {opacity : "0.0"}, 300 ).hide();
	    if( jQuery.browser.msie ){
			$('#Twitter'+page).css("display", "block").animate( {opacity : "1.0"}, 300, "swing",
			function(){
			    this.style.removeAttribute("filter");
			    this.style.visibility = "hidden";
			    this.style.visibility = "visible";
			} ).show();
		}
		else{
			$('#Twitter'+page).animate( {opacity : "1.0"}, 300 ).show();
		}
	}
	document.getElementById("TwitterCurrentPage").value = page;
}
