/**
 * @author assam
 */

/**
 * 初期化
 * 
 */
var obj_upload = null;	// アップロードオブジェクト
var obj_request = null; // コメント読み込み中判別用HTTPXMLRequestオブジェクト
var browse = "";		// ブラウザ情報
var read_timer = null;  // イベント読込用タイマ
var date_timer = null;  // 時刻表示用タイマ
var comment_addcnt = 0; // 
var view_comment_first = true; // コメントを初表示
var comment_modified = false // コメント欄をいじったか

$( function() {
	/* ブラウザ情報取得 */
	browser = $.browser;
	
	/* 動画リサイズ機能 */
	if ( !browser.mozilla && !browser.opera && !browser.safari ) {
		var width = $("#param_stream_width").val();
		var height = $("#param_stream_height").val();
		var ratio = width / height;
		var minheight = 320 / ratio + $("#movie_panel_control").height();
		$("#movie_panel").resizable({
			aspectRatio: false,
			handles: 'se',
			knobHandles: true,
			minWidth: 320,
			minHeight: minheight,
			resize: resizeRelated
		});
		
	}
	/* 動画コントロール */
	$("#windowsize").change( selectVideoSize );
		$("#defaultsize_btn").click( defaultVideoSize );
	$("#adminfunc_changedesc").click( function() {
		window.open( "/wmelive/wmestatus.php?liveid=" + $("#param_liveid").val() );
		//location.href = "/wmelive/wmestatus.php?liveid=" + $("#param_liveid").val();
	});
	$("#adminfunc_closelive").click( liveClose );
	
	/* 書き込み欄 */
	$("#comment_writer").resizable({
		aspectRatio: false,
		handles: 'se,e,s',
		knobHandles: true,
		minWidth: 260,
		minHeight: 100,
		resize: commentModified
	}).draggable({
		handle: "#comment_writer_dragbar",
		stop: function( e, ui ) {
//			var left = String( $("#comment_writer").css( "left" ) );
//			left = left.substr( 0, left.length - 2 );
//			left = parseInt( left );
//			var top = String( $("#comment_writer").css( "top" ) );
//			top = top.substr( 0, top.length - 2 );
//			top = parseInt( top );
//			var width = $("#comment_writer").width();
//			var height = $("#comment_writer").height();
//			var cmtop = $("#header").height() + $("#movie_panel").height();
//			
//			if ( 30 > width + left ) {
//				//left += ( 30 + ( width + left ) );
//				left = 30 - width;
//				$("#comment_writer").css( "left", String( left ) + "px" );
//			}
//			if ( top < 0 ) {
//				$("#comment_writer").css( "top", "0px" );
//			}
			
			commentResizeRelated();
			commentBoader();
		}
	});
	// comment writer
	$("#comment_writer_cancel").click( cancelWriter );
	
	// 書き込み
	$("#comment_writer_submitbutton").click( writeComment );
	
	// shift + Return書き込み
	$("#comment_writer_message").keydown( function( e ) {
		//if ( !browser.opera ) {
			if ( e.shiftKey && e.keyCode == 13 ) {
				writeComment();
			}
		//}
	});
	$("#comment_writer_name").keydown( function( e ) {
		if ( e.shiftKey && e.keyCode == 13 ) {
			return false;
		}
	});
//	/* イベントウィンドウ */
	/*$.timer( 200, function() {
		moveEventWindow();
	});*/
	
	/* 右ウィンドウ共通 */
	// 畳むボタン
	$("#mirror_list_header_right p").click( function() {
		tipView( "mirror_list" );
	});
	$("#live_desc_header_right p").click( function() {
		tipView( "live_desc" );
	});
		
	/* 再生コントロール */
	// 再生URL変更
	$("#mirror_list_playbtn").click( playStream );
	// 鏡削除
	$("#mirror_list_delbtn").click( deleteMirror );
	// 鏡追加
	$("#mirror_list_addmirror").click( addMirror );
	$("#mirror_list_btnlocalplay").click( localPlayStream );
	
	// peercastポート変更
	$("#peercast_port_button").click( changePeercastPort );
	
	/* タブコントロール */
	$("#right_tabs").tabs();
	$("#right_tabs").bind( "tabsshow", function( event, ui ) {
		//alert( ui.index );
		// プラグインのインストール要求
		if ( ui.index == 2 ) {
			var is_popup01 = $.cookie( "popup01" );
			if ( is_popup01 != "no" ) {
				var size 
					= $("#comment_inner").height()
					- $("#system_popup").height();
				$("#comment_inner").height( size );
				$("#system_popup").show();
			}
			$("#system_popup_check").click( function() {
				$.cookie( "popup01", "no", {expires: 30 } );
				var size
					= $("#comment_inner").height()
					+ $("#system_popup").height();
				$("#system_popup").hide();
				$("#comment_inner").height( size );
			});
		}
		// 初期スクロール
		if ( !view_comment_first ) return;
		commentScroll();
		view_comment_first = false;
		
		
	});
	/* 詳細欄 */
	$("#mailalert_add").click( viewMailAlertAdd );
	$("#mailalert_add_cancel").click( closeMailAlertAdd );
	$("#mailalert_add_submit").click( registMailAlertAdd );
	
	/* コメント欄コントロール */
	// 逆順ボタン 
	$("#comment_control_reverse").click( commentReverse );
	// リロード
	$("#comment_control_reload").click( reCommentLoad );
	// resizable
	/*$("#comment").resizable({
		aspectRatio: false,
		handles: 's',
		knobHandles: true,
		minHeight: 120
	});*/
	// コンテクストメニュー 
	// コンテクストメニュー( コメント欄 )
	$(".comment_function").contextMenu( {
		menu: "comment_menu"
	}, contextMenu );

	/* その他初期化呼び出し */
	// ( 関数呼び出し )
	// アップローダ
	createUploader();
	
	// 広告のAタグにtarget属性追加( 別ドメインなので無理でした )
	//addADLinkTarget();
	
	// コメント読み込み開始
	readEventData();
	
	// 現在時刻
	showNowDate();
	//date_timer = setInterval( "showNowDate()", 1000 );
	//
	
	// cookie有効期限延長
	if ( $.cookie( "popup01" ) != null ) {
		$.cookie( "popup01", $.cookie( "popup01" ), {expires: 30 } );
	}
	
	//
	onLoad();
	
});

/**
 * 畳む・表示ボタン
 * 
 */
function tipView( str ) {
	var button = "#" + str + "_header_right p img";
	var button_img = $(button).attr( "src" );
	var body   = "#" + str + "_body";

	if ( button_img == "../images/zoom_out.png" ) {
		$(body).css( "display", "none" );
		$(button).attr( "src", "../images/zoom_in.png" );
	} else {
		$(body).css( "display", "block" );
		$(button).attr( "src", "../images/zoom_out.png" );
	}
}

// onload
function onLoad() {
	/* 初期サイズ */
	var width  = parseInt( $("#param_stream_width").val() );
	var height = parseInt( $("#param_stream_height").val() );
	var ratio = width / height;
	$("#movie_panel").width( width );
	//$("#comment_writer").width( width );
	
	/* サイズ調整など */
	videoSizeView();
	commentResizeRelated();

	$("#comment").attr( "scrollTop", "0px" );
	commentScroll();
}

function createUploader() {
	/* ファイルアップロード機能 */
	obj_upload = new AjaxUpload( "#comment_writer_file", {
		action: "/interface/message/writer.php",
		name: "userfile",
		autoSubmit: false,
		onSubmit: function( file, ext ) {
			//alert( "submit" );
			/*if (! (ext && /^(jpg|png|jpeg|gif|txt|)$/.test(ext))){
	            // extension is not allowed
	            alert('対応拡張子は、jpg, jpeg, png, gif, txtです。');
	            // cancel upload
	            return false;
            }*/

			//alert( file );
			$("#comment_writer_submitbutton").attr( "disabled", "disabled" );
			this.disable();
		},
		onChange: function( file, ext ) {
			$("#comment_writer_filename").html( file );
		},
		onComplete: function( file, response ) {
			this.enable();
			
			if (response == "error") {
				alert( "ファイルのアップロードに失敗しました。" );
			}
			else {
				var message = "";
				var arrayRes = response.split( "\n" );
				for ( var i = 1; i < arrayRes.length; i ++ ) {
					if ( i > 1 ) message += "\n";
					message += arrayRes[i];
				}
				
				$("#message_writer_filename").html("");
				//alert( "書き込み完了" );
				$("#comment_writer_submitbutton").removeAttr( "disabled" );
				clearComment();
				this.enable();
				this.destroy();
				createUploader();
			}
		}
	});
}

/**
 * Silverlight・書込み欄用
 * 
 */
// Silverlightエラーハンドラ 
function onSilverlightError( sender, args ) {
	alert( "動画プレイヤエラー" );
}
// resizableイベント、兼movie_panelサイズ調整
function resizeRelated() {
	//alert( "resizeRelated" );
	var dwidth = $("#param_stream_width").val();
	var dheight = $("#param_stream_height").val();
	var ratio = dwidth / dheight;
	
	// 
	var width = $("#movie_panel").width();
	var height = width / ratio;
	var cheight = $("#movie_panel_control").height() + 1;
	
	// 動画枠
	// ( 元サイズ退避 )
	var prev_width = parseInt( $("#movie_panel_player").width() );
	var prev_height = parseInt( $("#movie_panel_player").height() );
	// ( 変更 )
	$("#movie_panel_player").width( width );
	$("#movie_panel_player").height( height + 65 );
	$("#movie_panel").height( height + cheight + 65 );
	
	// contents_leftのサイズおよび、バナー・フッターサイズ調整
	if (width >= $("#comment_writer").width()) {
		$("#contents_left").width(width + 20);
	}
	
	// Firefox等対応( 動画プレイヤサイズが変わった場合、動画プレイヤを書き直す )
	if ( ( browser.mozilla || browser.opera || browser.safari )
		&& ( prev_width != parseInt( $("#movie_panel_player").width() ) 
		|| prev_height != parseInt( $("#movie_panel_player").height() ) ) 
		) {
		var html = $("#movie_panel_player").html();
		$("#movie_panel_player").html( html );
	}
	
	// 
	// 被り回避
	var mov_offset_left = $("#movie_panel").offset().left;
	var mov_offset_top  = $("#movie_panel").offset().top;
	var mov_size_width  = $("#movie_panel").width();
	var mov_size_height = $("#movie_panel").height();
	
	var com_offset_left = $("#comment_writer").offset().left;
	var com_offset_top  = $("#comment_writer").offset().top;
	var com_size_width  = $("#comment_writer").width();
	var com_size_height = $("#comment_writer").height();
	
	if ( mov_offset_left + mov_size_width > com_offset_left + com_size_width - 20
		&& ( mov_offset_top + mov_size_height > com_offset_top + 10 
			&& mov_offset_top < com_offset_top + 10 ) ) {
		// 横移動
		if ( com_offset_top + com_size_height < mov_offset_top + mov_size_height ) {
			$("#comment_writer").css( "left", mov_offset_left + mov_size_width );
		} 
		// 縦移動
		else {
			if ( comment_modified ) {
				$("#comment_writer").css( "top", mov_offset_top + mov_size_height );
			} else {
				$("#comment_writer").css( "top", 0 );
			}
		}
	}

	videoSizeView();
	autoChangeLeft()
	resizeBannerRelated();
}
function videoSizeView() {
	width = parseInt( $("#movie_panel_player").width() );
	height = parseInt( $("#movie_panel_player").height() ) - 65;
	var sizestr 
		= "now:" + parseInt( width ) + "x" + parseInt( height );
	$("#videosize").html( sizestr );
}
// サイズ直指定
function chageMoviePanelSize( width ) {
	$("#movie_panel").width() = width;
	resizeRelated();
}
function selectVideoSize() {
	var target = $("#windowsize :selected").val();
	arrayTarget = target.split( "x" );
	var width = parseInt( arrayTarget[0] );
	
	$("#movie_panel").width( width );
	resizeRelated();
}
function defaultVideoSize() {
	var width = parseInt( $("#param_stream_width").val() );
	$("#movie_panel").width( width );
	resizeRelated();
}

// 再生アドレス指定
function changeLiveAddress( address ) {
	var sl = document.getElementById( "mediaplayer" );
	sl.Content.PlayInterface.changeStreamAddr( address );
}

// 書込み欄サイズ調整　
function commentResizeRelated() {
	//alert( "commentResizeRelated" );
	var right_width = $("#comment_writer").width() - 20;
	$(".comment_writer_rightcol").width( right_width );
	$("#comment_writer_name").width( right_width - 150 );
	$("#comment_writer_message").width( right_width - 10 );
	$("#comment_writer_message").height( $("#comment_writer").height() - 70 );
	
	resizeRelated();
}
function commentModified() {
	comment_modified = true;
	commentResizeRelated();
	commentBorder();
}
function commentBoader() {
	// コメント書込み欄位置
	var left = String( $("#comment_writer").css( "left" ) );
	left = left.substr( 0, left.length - 2 );
	left = parseInt( left );
	var top = String( $("#comment_writer").css( "top" ) );
	top = top.substr( 0, top.length - 2 );
	top = parseInt( top );
	var width = $("#comment_writer").width();
	var height = $("#comment_writer").height();
	var cmtop = $("#header").height() + $("#movie_panel").height();
	
	if ( 30 > width + left ) {
		//left += ( 30 + ( width + left ) );
		left = 30 - width;
		$("#comment_writer").css( "left", String( left ) + "px" );
	}
	if ( top < 0 - cmtop ) {
		$("#comment_writer").css( "top", 0 - cmtop + "px" );
	}
}
// contents_leftのサイズ
function autoChangeLeft() {
	//alert( "changeLeft" );
	if ( $("#comment_writer").width() > $("#movie_panel").width() ) {
		//$("#movie_panel").width( $("#comment_writer").width() );
		$("#contents_left").width( $("#comment_writer").width() + 20 );
	}
	var vwidth = $("#movie_panel").width();
	var cwidth = $("#comment_writer").width();
	var lwidth = 0;
	/*if (vwidth >= cwidth) {
		lwidth = vwidth;
	}
	else {
		lwidth = cwidth;
	}*/
	lwidth = vwidth;
	lwidth += 20;
	
	$("#contents_left").width( lwidth );
	allwidth = lwidth + $("#contents_right").width() + 10;
	$("#contents").width( allwidth );
	$("#system_help").width( allwidth + 40 );
	
	// 広告１
	//$("#ad01").width( lwidth - 20 );
}

// タイトルバー・フッタ
function resizeBannerRelated() {
	var content_width = parseInt( $("#contents").width() );
	
	// header
	$("#header_center").width( content_width - 558 );
	$("#header").width( 600 + $("#header_center").width() );
	// footer
	$("#footer").width( content_width + 42 );
	
}

/**
 * コメント処理
 * 
 */
function writeComment() {
	var liveid = $("#param_liveid").val();
	var name = $("#comment_writer_name").val();
	var message = $("#comment_writer_message").val();
	if ( message == "" ) {
		alert( "コメント欄が空です" );
		return false;
	}

	// ファイル付き
	var filename = $("#comment_writer_filename").html();
	if (filename != "" && filename != null ) {
		if (message == "内容") {
			message = "";
		}
		obj_upload.setData({
			"liveid": liveid,
			"name": name,
			"message": message
		});
		obj_upload.submit();
	} 
	// ファイル無し
	else {
		$("#comment_writer_submitbutton").attr( "disabled", "disabled" );
		//var data
		//	= "liveid=" + liveid + "&name=" + name + "&message=" + message;
		var data = {
				liveid: liveid,
				name: name,
				message: message
		};

		$.ajax( {
			type: "POST",
			url: "/interface/message/writer.php",
			data: data,
			cache: false,
			dataType: "text",
			async: true,
			error: function( msg ) {
				alert( "書き込みに失敗しました。" );
				$("#comment_writer_submitbutton").removeAttr( "disabled" );
			},
			success: function( msg ) {
				var arrayMsg = msg.split( "\n" );
				if (arrayMsg[0] == "OK") {
					clearComment();
				}
				else {
					var message = "";
					for (var i = 1; i < arrayMsg.length; i++) {
						message += arrayMsg[i] + "\n";
					}
					alert(message);
				}
				
				$("#comment_writer_submitbutton").removeAttr( "disabled" );
			}
		});
		
	}
}

function clearComment() {
	//$("#comment_writer_name").val( "" );
	$("#comment_writer_message").val( "" );
	$("#comment_writer_filename").html( "" );
}

function cancelWriter() {
	var flg = confirm( "本文を取り消してよろしいですか？" );
	if ( !flg ) return;
	//obj_upload.destroy();
	obj_upload = null;
	createUploader();
	clearComment();
}

/**
 * イベント処理
 * 
 */
function readEventData() {
	clearInterval( read_timer );
	
	var num = parseInt( $("#param_event_num").val() ) + 1;
	var liveid = $("#param_liveid").val();
	var is_reverse = $("#param_comment_reverse").val();
	
	data = {
		id: liveid,
		num: num,
		reverse: is_reverse
	};

	obj_request = $.ajax({
		type: "GET",
		url: "/interface/message/reader.php",
		cache: false,
		dataType: "text",
		data: data,
		async: true,
		timeout: 300000,
		success: function( msg, type ) {
			if (msg != "") {
				//alert( msg );
				/* 処理 */
				var array_msg = msg.split("\n");
				var event_cnt = 0;
				var is_messageadd = false;
				
				for (var i = 0; i < array_msg.length; i++) {
					var line = array_msg[i];
					var array_line = line.split( "<>" );
					// イベントタイプ毎の処理
					var event_name = array_line[0];

					switch( event_name ) {
						// コメント
						case "EVT01":
							var is_reverse = $("#param_comment_reverse").val();
							if (is_reverse == '1') {
								var now_offset = $("#comment").attr( "scrollTop" );
								$("#comment_header").after(array_line[1]);
								if ( $("#comment_control_noscroll").attr( "checked" ) ) {
									var targetnum = $(".comment_num:first").html();
									targetnum = targetnum.split( ":" )[0];
									var target = "#comment_row_" + targetnum;
									var scroll_plus
										= $(target).attr( "offsetHeight" );
									var offset = now_offset + scroll_plus;
									$("#comment").animate( {
										scrollTop: offset
									}, 1 );
								}
							}
							else {
								$("#comment_footer").before(array_line[1]);
							}
							// 
							var mobj = new RegExp( "comment_row_[0-9]+" );
							var match = array_line[1].match( mobj );
							var add_target = "#" + match[0];
							$(add_target + " .comment_function").contextMenu( {
								menu: "comment_menu"
							}, contextMenu );
							is_messageadd = true;
							break;
						// 鏡
						case "EVT02":
							var options = "";
							for ( var j = 1; j < array_line.length; j ++ ) {
								var stream_url = array_line[j].match( /http:\/\/[^ ]+/i );
								options
									+= array_line[j] + "<br />";
							}
							$("#mirror_list_tree").html( options );
							break;
						case "EVT03":
							var subject = array_line[1];
							var desc    = array_line[2];
							var genre   = array_line[3];
							var contact = array_line[4];
							var upload  = array_line[5];
							var agelimit = array_line[6];
							var maintitle = "WMECast - [" + $("#param_dj_name").val() + "] " + subject + " -";
							$(".live_subject").html( subject );
							$(".live_genre").html( genre );
							$(".live_contacturl a").html( contact );
							$("#live_desc_doby_description").html( desc );
							document.title = maintitle;
							if ( upload == '1' || upload == "true" ) {
								$("#comment_writer_file").removeAttr( "disabled" );
							} else {
								$("#comment_writer_file").attr( "disabled", "disabled" );
							}
							//$("#header img").attr( "src", "../images/wmec_bar3og.png" );
							//$("#mirror_list_header_left").css( "background-image", "url('../images/minibar3_og.gif')");
							//$("#live_desc_header_left").css( "background-image", "url('../images/minibar3_og.gif')");

							break;
						case "EVT04":
							var listener = array_line[1];
							var accesscnt = array_line[2];
							$(".live_listener").html( listener );
							$(".live_accesscnt").html( accesscnt );
							break;
						case "EVT05":
							$("#is_liveclose").html( "(配信終了)" );
							break;
						case "EVT06":
							for ( var i = 1; i < array_line.length; i ++ ) {
								var row = array_line[i];
								var array_row = row.split( ":" );
								var target = "#comment_row_" + array_row[0];
								if (array_row[1] == "1" ) {
									$(target).css("opacity", "0.25");
									$(target + " .comment_filelink").hide();
								} else {
									$(target).css("opacity", "1");
									$(target + " .comment_filelink").show();
								}
							}
							break;
						case "EVT07":
							var target_num = array_line[1];
							var target = "#comment_row_" + target_num;
							$( target + " .comment_filelink" ).html( "" );
							break;
					}
					
					
					// 行数カウント
					if ( line != "" ) event_cnt ++;
				}
				num = parseInt($("#param_event_num").val());
				num += event_cnt;
				$("#param_event_num").val(num);
				
				if ( is_messageadd ) {
					var is_reverse = $("#param_comment_reverse").val();
					if ( is_reverse != "1" ) commentScroll();
				}
				
				// 広告更新
				comment_addcnt ++;
				if ( comment_addcnt > 10 ) {
					replaceAD01();
					
					comment_addcnt = 0;
				}
			}
			//alert( "read out" );
			//readEventData();
			read_timer = setInterval( "readEventData()", 50 );
		}
	});
}

/**
 * コメントリバース
 * 
 */
function commentReverse() {
	var is_reverse = $("#param_comment_reverse").val();
	var liveid = $("#param_liveid").val();
	$("#comment_control_reverse").attr( "disabled", "disabled" );
	if ( obj_request != null ) {
		obj_request.abort();
	}
	if ( is_reverse == "1" ) {
		is_reverse = "0";
	} else {
		is_reverse = "1";
	}
	$("#param_comment_reverse").val( is_reverse );
	var data = {
		id: liveid,
		reverse: is_reverse
	}
	$.get( "/interface/message/msglist.php", data, function( mes ) {
		$("#comment_inner").html( "<div id=\"comment_header\">"
						+ "</div>\n"
						+ mes + "\n"
						+ "<div id=\"comment_footer\">\n"
						+ "</div>\n"
						);
		$(".comment_function").contextMenu( {
			menu: "comment_menu"
		}, contextMenu );
		var is_reverse = $("#param_comment_reverse").val();
		commentScroll();
		$("#comment_control_reverse").removeAttr( "disabled" );
		readEventData();
	});
	
	
	
	
}

/**
 * コメントスクロール
 * 
 */
function commentScroll() {
	var is_scroll = $("#comment_control_noscroll").attr( "checked" );
	if ( is_scroll ) return;
	
	if ($("#param_comment_reverse").val() == "1") {
		var target_offset = 0;
	}
	else {
		var scroll_height = $("#comment_inner").attr("scrollHeight");
		var message_height = $("#comment_inner").height();
		var target_offset = scroll_height - message_height;
	}
	$("#comment_inner").animate({
		scrollTop: target_offset
	}, 800);
	return;
}


/**
 * 再読み込み
 * 
 */
function reCommentLoad() {
	if ( obj_request != null ) {
		obj_request.abort();
	}
	readEventData();
}

/**
 * コンテクストメニュー処理
 * 
 */
function contextMenu( action, element, position ) {
	// コマンド処理
	switch( action ) {
		case "writer_ban":
			var num  = $(".comment_num", $(element).parent() ).html();
			num = num.split( ":" )[0];
			var liveid = $("#param_liveid").val();
			var data = {
				liveid: liveid,
				num: num
			};
			$.post( "/interface/message/writerban.php", data, function( mes ) {
				var arrayMes = mes.split( "\n" );
				if ( arrayMes[0] == "OK" ) {
					alert( "BANフラグの反転を行いました。" );
				} else {
					var message = "";
					for ( var i = 1; i < arrayMes.length; i ++ ) {
						message += arrayMes[i] + "\n";
					}
					alert( message );
				}
			});
			break;
		case "file_cancel":
			var num  = $(".comment_num", $(element).parent() ).html();
			num = num.split( ":" )[0];
			var liveid = $("#param_liveid").val();
			var data = {
				liveid: liveid,
				num: num
			};

			$.post( "/interface/message/filecancel.php", data, function( mes ) {
				var arrayMes = mes.split( "\n" );
				if ( arrayMes[0] == "OK" ) {
					alert( "ファイルの削除を行いました。" );
				} else {
					var message = "";
					for ( var i = 1; i < arrayMes.length; i ++ ) {
						message += arrayMes[i] + "\n";
					}
					alert( message );
				}
			});
			break;
		case "ip_view":
			var num  = $(".comment_num", $(element).parent() ).html();
			num = num.split( ":" )[0];
			var liveid = $("#param_liveid").val();
			var data = {
				liveid: liveid,
				num: num
			};
			$.post( "/interface/message/ipview.php", data, function( mes ) {
				var arrayMes = mes.split( "\n" );
				if ( arrayMes[0] == "OK" ) {
					alert( arrayMes[1] );
				} else {
					var message = "";
					for ( var i = 1; i < arrayMes.length; i ++ ) {
						message += arrayMes[i] + "\n";
					}
					alert( message );
				}
			});
			break;
		default:
			alert( "undefined function in ContextMenu." );
			break;
	}
}

/**
 * イベントウィンドウ( 凍結 )
 * 
 */
function moveEventWindow() {
	var top  = $(document).scrollTop(); 
	var left = $(document).scrollLeft();
	
	var height = $(window).height();
	var width  = $(window).width();
	
	var window_top = top + height - 252;
	var window_left = left + width - 402;
	
	window_top = window_top + "px";
	window_left = window_left + "px";
	
	$("#event_window").css( "top", window_top );
	$("#event_window").css( "left", window_left );
}

/**
 * 配信処理
 * 
 * 
 */
function liveClose() {
	var liveid = $("#param_liveid").val();
	
	var ret = window.confirm( "配信掲載を終了しますか？"　);

	if ( ret == true ) {
		var data = {
			id: liveid
		};

		$.post( "/interface/wme/wmeclose.php", data, function( msg ) {
			var arrayMsg = msg.split( "\n" );
			if ( arrayMsg[0] == "OK" ) {
				alert( "配信掲載を終了しました。" );
			} else {
				var message = "";
				for ( var i = 1; i < arrayMsg.length; i ++ ) {
					message += arrayMsg[i] + "\n";
				}
			}
		});
	}
}

/**
 * 鏡リスト関連
 * 
 */
// WME
function changeStream( url ) {
	$("#mirror_list_urlbox").val( url );
	playStream();
}
function copyStream( url ) {
	$("#mirror_list_urlbox").val( url );
}
function localPlayStream() {
	var url = $("#mirror_list_urlbox").val();
	var pattern = /http:\/\/[^:]+:([0-9]+)/i;
	if ( url.match( pattern ) ) {
		url = url.replace( pattern, "http://127.0.0.1:$1" );
	}
	$("#mirror_list_urlbox").val( url );
	playStream();
}
function playStream() {
	var url = $("#mirror_list_urlbox").val();
	//alert( url );
	if ( url != "" ) {
		//var slObject = document.getElementById( "mediaplayer" );
		//slObject.Content.PlayInterface.changeStreamAddr( url );
		$("#moviepanel_object_url").attr( "value", url );
		$("#moviepanel_embed").attr( "src", url );
		if ( browser.msie ) {
			mediaplayer.URL = url;
			mediaplayer.stop();
			mediaplayer.play();
		} else {
			var html = $("#movie_panel_player").html();
			$("#movie_panel_player").html( html );
		}
	}
}
function deleteMirror() {
	var url = $("#mirror_list_urlbox").val();
	var liveid = $("#param_liveid").val();
	if ( url != "" ) {
		var data = {
			id: liveid,
			url: url
		};
		$.post( "/interface/stream/delmirror.php", data, function( msg ) {
			var arrayMes = msg.split( "\n" );
			if ( arrayMes[0] == "OK" ) {
				alert( "鏡をリストから削除しました。" );
			} else {
				var message = "";
				for ( var i = 1; i < arrayMes.length; i ++ ) {
					message += arrayMes[i] + "\n";
				}
				alert( message );
			}
		});
	}
}
function addMirror() {
	var url = $("#mirror_list_urlbox").val();
	var liveid = $("#param_liveid").val();
	if ( url != "" ) {
		var data = {
			id: liveid,
			url: url
		};
		$.post( "/interface/stream/addmirror.php", data, function( msg ) {
			var arrayMes = msg.split( "\n" );
			if ( arrayMes[0] == "OK" ) {
				alert( "指定したURLを鏡として登録しました。" );
			} else {
				var message = "";
				for ( var i = 1; i < arrayMes.length; i ++ ) {
					message += arrayMes[i] + "\n";
				}
				alert( message );
			}
		});
	}
}

// Peercast
function changePeercastPort() {
	var pip  = $("#peercast_ip").val();
	var port = $("#peercast_port").val();
	if ( !port.match( /[0-9]+/ ) ) {
		alert( "portは数値で指定してください。" );
	}
	var tip = $("#param_peercast_tip").val();
	var id  = $("#param_peercast_id").val();
	var url
		= "http://" + pip + ":" + port + "/pls/" + id + "?tip=" + tip;
	//alert( url );
	//var slObject = document.getElementById( "mediaplayer" );
	//slObject.Content.PlayInterface.changeStreamAddr( url );
	playPeercast( url );
	
	$.cookie( "peercast_ip", pip, {expires:30} );
	$.cookie( "peercast_port", port, {expires:30} );
}

function playPeercast( url) {
	//alert( url );
	if ( url != "" ) {
		$("#moviepanel_object_url").attr( "value", url );
		$("#moviepanel_embed").attr( "src", url );
		if ( browser.msie ) {
			mediaplayer.URL = url;
			mediaplayer.stop();
			mediaplayer.play();
		} else {
			var html = $("#movie_panel_player").html();
			$("#movie_panel_player").html( html );
		}
	}
}

/**
 * メール通知登録 
 *
 */
function viewMailAlertAdd() {
	$("#mailalert_form").show();
}

function closeMailAlertAdd() {
	$("#mailalert_add_mailaddr").val( "" );
	$("#mailalert_add_passwd").val( "" );
	$("#mailalert_form").hide();
}

function registMailAlertAdd() {
	var mailaddr = $("#mailalert_add_mailaddr").val();
	var passwd   = $("#mailalert_add_passwd").val();
	var liveid   = $("#param_liveid").val();
	
	var data = {
		mailaddr: mailaddr,
		passwd: passwd,
		liveid: liveid
	};

	$.post( "/interface/user/addmailalert.php", data, function( msg ) {
		var arrayMes = msg.split( "\n" );
		if ( arrayMes[0] == "ok" ) {
			alert( "メール通知登録が完了しました。" );
			closeMailAlertAdd();
		} else {
			var message = "";
			for ( var i = 1; i < arrayMes.length; i ++ ) {
				message += arrayMes[i] + "\n";
			}
			alert( message );
		}
	});
}

/**
 * 広告操作
 * 
 */
function replaceAD01() {
	var html = $("#ad01 iframe").attr( "src" );
	$("##ad01 iframe").attr( "src", html );
}

function replaceAD02() {
	var html = $(".ad02 iframe").attr( "src" );
	$(".ad02 iframe").attr( "src", html );
	
	//addADLinkTarget();
}
function addADLinkTarget() {
	$("#.ad02 iframe a").attr( "target", "_blank" );
	var frame = $(".ad02 iframe").contents();
	alert( $("html", frame ).html() );
	//$("a", frame ).attr( "target", "_blank" );
}

/**
 * 時刻表示
 *
 */
function showNowDate() {
	var date = new Date();
	var str 
		= strpad( date.getHours(), 2, '0' )
		+ ":"
		+ strpad( date.getMinutes(), 2, '0' )
		+ ":"
		+ strpad( date.getSeconds(), 2, '0' );
	$("#nowtime").html( str );
}

function strpad( str, length, character ) {
	str = String( str );
	while( str.length < length ) {
		str = String( character ) + String( str );
	}
	return str;
}
