function addEvent(elm, evType, fn, useCapture) {
	if (elm.addEventListener) {
		elm.addEventListener(evType, fn, useCapture);
		return true;
	}
	else if (elm.attachEvent) {
		var r = elm.attachEvent('on' + evType, fn);
		return r;
	}
	else {
		elm['on' + evType] = fn;
	}
}

// ログイン
function _login(f) {
	// 通信を行う
	$.ajax({
		type: "post",
		dataType: "json",
		data: {
			mailaddress : $(f).children("input[name=mailaddress]").attr('value'),
			password : $(f).children("input[name=password]").attr('value')
		},
		cache: false,
		url: "http://www.nicozone.com/api/login", // サーバのURL

		// 通信に成功したときの処理
		success: function (res) {
			if(res.indexOf("NG") == 0){
				jAlert(res.slice(4), 'ログインエラー');
			}
		},

		// 通信後の処理
		complete: function(xml, status) {
			if(typeof load == 'function'){
				load();
			} else {
				_update_login_info();
			}
		}
	});

	return false;
}

// ログアウト
function _logout() {
	// 通信を行う
	$.ajax({
		type: "get",
		dataType: "json",
		data: {
		},
		cache: false,
		url: "http://www.nicozone.com/api/logout", // サーバのURL

		// 通信に成功したときの処理
		success: function (res) {
			if(res.indexOf("NG") == 0){
				jAlert(res.slice(4), 'ログインエラー');
			}
		},

		// 通信後の処理
		complete: function(xml, status) {
			if(typeof load == 'function'){
				load();
			} else {
				_update_login_info();
			}
		}
	});

	return false;
}

function _update_login_info(){
			//$("#login_navi_title").empty();
			if($.cookies.get('mailaddress') != null){
				//$("#loginbox").show();
				//$("#login_navi").hide();

				$("#loginbox").hide();
				$("#toolbar_login").hide();
				$("#toolbar_userinfo").show();

				$("#userinfo").empty();
				$("#userinfo").html("<p style='text-align: center'>" + $.cookies.get('name') + "さん<br>("+ $.cookies.get('mailaddress') +")</p><p style='text-align: center'><a href='/%E3%83%84%E3%83%BC%E3%83%AB/%E6%94%BE%E9%80%81%E3%83%81%E3%82%A7%E3%83%83%E3%82%AB%E3%83%BC/%E7%94%9F%E4%B8%BB.html'>生主チェッカー</a></p><p style='text-align: center'><input name='logout_button' type='button' onclick='_logout()' value='ログアウト' class='button'> <a href='/my/'>マイページ</a></p>");
				$("#userinfo").css("display","block");
				//$("#login_navi_title").html("ログイン中");
			} else {
				$("#loginbox").show();
				$("#toolbar_login").show();
				$("#toolbar_userinfo").hide();

				//$("#login_navi").show();
				//$("#userinfo").hide();
				//$("#login_navi_title").html("ログイン");
			}
}

// ログインしているか
function _is_login(){
	if($.cookies.get('mailaddress') != null){
		return true;
	} else {
		return false;
	}
}

// 経過時間を文字列で生成
function _generate_elapsedtime_text(time){
	var result = "";

	// 現在時刻を取得
	now = new Date();

	// 求めたい時刻を設定
	last_time = new Date();
	last_time.setTime(Date.parse(time));

	elapsedtime = Math.floor((now.getTime() - last_time.getTime()) / 1000 / 60);

	elapsedtime_hour = Math.floor(elapsedtime / 60);
	elapsedtime_day = Math.floor(elapsedtime / 60 / 24);
	if(elapsedtime_day > 31){
		result += "1ヶ月以上前";
	}else if(elapsedtime_day > 0){
		result += elapsedtime_day + "日以上前";
	}else if(elapsedtime_hour > 0){
		result += elapsedtime_hour + "時間以上前";
	}else if(isNaN(elapsedtime)){
		result += "-";
	}else {
		result += elapsedtime + "分前";
	}

	return result;
}

// オンライン状況を表示する画像タグを生成する
function _generate_status_tag(status){
	var result = "";

	if(status == "standby"){
		result = "<img src='http://cdn.nicozone.com/misc/images/status/0/online.png' height='20' width='50'>";
	}else if(status == "live"){
		result = "<img src='http://cdn.nicozone.com/misc/images/status/0/live.png' height='20' width='50'>";
	}else if(status == "party"){
		result = "<img src='http://cdn.nicozone.com/misc/images/status/0/party.png' height='20' width='50'>";
	}else if(status == "twoshot"){
		result = "<img src='http://cdn.nicozone.com/misc/images/status/0/2shot.png' height='20' width='50'>";
	}else if(status == "offline"){
		result = "<img src='http://cdn.nicozone.com/misc/images/status/0/offline.png' height='20' width='50'>";
	}

	return result;
}

// サイト名リストの取得
// [引数]
//	form: フォームID
//	button: ボタンID
//	loader: ロード中画像ID
function _load_sitename(form,button,loader) {
	// 通信を行う
	$.ajax({
		async: false,
		type: "get",
		dataType: "json",
		data: {
		},
		cache: false,
		url: "http://www.nicozone.com/api/site", // サーバのURL

		// 通信前の処理
		beforeSend: function (xml) {
			// ロード中画像の表示
			$(loader).html("<img src='http://cdn.nicozone.com/misc/images/loader/ajax-loader-cycle.gif'>");
		  
			// ボタンを押せなくする
			$(button).attr("disabled", "true");
		},

		// 通信に成功したときの処理
		success: function (res) {
			var optionItems = "";

			// 選択肢を追加
	 		$.each(res, function(i){
				optionItems += "<option value='" + res[i].id + "'>" + res[i].name + "</option>";
			});

			var site_selector = $(form).find("select[name=site]");
			$(form).find("select[name=site]").html(site_selector.html()+optionItems);
		},

		// 通信エラー時の処理
		error: function(xml, load_status, e) {
			jAlert('サイトリストの取得に失敗しました。<br>しばらくたってからのやり直しをお願いします。', 'サイトリストの取得');
		},

		// 通信後の処理
		complete: function(xml, status) {
			// 不要な要素の中身を空に
			$(loader).empty();

			// ボタンのdisableを解放
			$(button).removeAttr("disabled");
		}
	});

	return false;
}

// 女の子への投票
function _vote_girl(site_name, uid) {
	//if(_is_login()){
		// 通信を行う
		$.ajax({
			type: "get",
			dataType: "json",
			data: {
				uid: uid,
				site: site_name
			},
			cache: false,
			url: "http://www.nicozone.com/api/votegirl", // サーバのURL

			// 通信前の処理
			beforeSend: function (xml) {
				$("#loader").html("<img style='border: 0px' src='http://cdn.nicozone.com/misc/images/loader/ajax-loader-cycle.gif'>");
			},

			// 通信に成功したときの処理
			success: function (res) {
				if(res.indexOf("NG") == 0){
					jAlert('投票に失敗しました。<br>投票は1日1回のみ可能です。', '投票');
				} else {
					jAlert('投票しました。', '投票');
				}
			},

			// 通信エラー時の処理
			error: function(xml, load_status, e) {
				jAlert('投票に失敗しました。<br>投票は1日1回のみ可能です。', '投票');
			},

			// 通信後の処理
			complete: function(xml, status) {
				// 不要な要素の中身を空に
				$("#loader").empty();

				if(typeof load == 'function'){
					load();
				} else {
					_update_login_info();
				}
			}
		});
	//} else {
	//	jAlert('お気に入りに追加するには、<a href="/tools/onlinechecker.html" style="color: #cc0000" target="_top">ログイン</a>するか、<a href="/tools/regist.html" style="color: #cc0000" target="_top">ユーザ登録</a>をして下さい', 'お気に入りの追加');
	//}

	return false;
}

// お気に入りの女の子の追加
function _add_girl(site_name, uid) {
	if(_is_login()){
		// 通信を行う
		$.ajax({
			type: "get",
			dataType: "json",
			data: {
				uid: uid,
				site: site_name
			},
			cache: false,
			url: "http://www.nicozone.com/api/addcheckgirls", // サーバのURL

			// 通信前の処理
			beforeSend: function (xml) {
				$("#loader").html("<img style='border: 0px' src='http://cdn.nicozone.com/misc/images/loader/ajax-loader-cycle.gif'>");
			},

			// 通信に成功したときの処理
			success: function (res) {
				jAlert('お気に入りに追加しました。', 'お気に入りの追加');
			},

			// 通信エラー時の処理
			error: function(xml, load_status, e) {
				jAlert('お気に入りの追加に失敗しました。<br>しばらくたってからのやり直しをお願いします。', 'お気に入りの追加');
			},

			// 通信後の処理
			complete: function(xml, status) {
				// 不要な要素の中身を空に
				$("#loader").empty();

				if(typeof load == 'function'){
					load();
				} else {
					_update_login_info();
				}
			}
		});
	} else {
		jAlert('お気に入りに追加するには、<a href="/tools/onlinechecker.html" style="color: #cc0000" target="_top">ログイン</a>するか、<a href="/tools/regist.html" style="color: #cc0000" target="_top">ユーザ登録</a>をして下さい', 'お気に入りの追加');
	}

	return false;
}

// お気に入りの女の子の削除
function _delete_girl(site_name, uid) {
	// 本当に削除するか確認
	jConfirm('お気に入りを削除しますか？', 'お気に入りの削除', function(r) {
		if(r == true){
			// 通信を行う
			$.ajax({
				type: "get",
				dataType: "json",
				data: {
					uid: uid,
					site: site_name
				},
				cache: false,
				url: "http://www.nicozone.com/api/deletecheckgirls", // サーバのURL

				// 通信前の処理
				beforeSend: function (xml) {
					$("#loader").html("<img style='border: 0px' src='http://cdn.nicozone.com/misc/images/loader/ajax-loader-cycle.gif'>");
				},

				// 通信に成功したときの処理
				success: function (res) {
					jAlert('お気に入りを削除しました。', 'お気に入りの削除');
				},

				// 通信エラー時の処理
				error: function(xml, load_status, e) {
					jAlert('お気に入りの削除に失敗しました。<br>しばらくたってからのやり直しをお願いします。', 'お気に入りの削除');
				},

				// 通信後の処理
				complete: function(xml, status) {
					// 不要な要素の中身を空に
					$("#loader").empty();

					if(typeof load == 'function'){
						load();
					} else {
						_update_login_info();
					}
				}
			});
		}
	});

	return false;
}
