﻿/// Require jQuery.js、Library.js

/// 名称: 文章类
function Archive()
{
	var prototype = this.constructor.prototype;
	if (!prototype.hasOwnProperty("_init_"))
	{
		prototype._init_ = true;

		// 获取文章统计数据
		prototype.getArchiveCount = function(archiveId, callback)
		{
			$.getJSON("/Archive/Count",
				{ archiveId: archiveId },
				function(data)
				{
					if (!isUndefinedOrNull(callback)) callback(data);
				});
		};

		// 点击文章
		prototype.click = function(archiveId, callback)
		{
			$.getJSON("/Archive/Click",
				{ archiveId: archiveId },
				function(data)
				{
					if (!isUndefinedOrNull(callback)) callback(data.Result);
				});
		};

		// 推荐文章
		prototype.digg = function(archiveId, callback)
		{
			$.getJSON("/Archive/Digg",
				{ archiveId: archiveId },
				function(data)
				{
					switch (data.Result)
					{
						case "MustLogin": alert("必须先登录!"); break;
						case "HasDigg": alert("不能重复推荐!"); break;
						case "Success": alert("推荐成功!"); break;
					}

					if (!isUndefinedOrNull(callback)) callback(data.Result);
				});
		};

		// 向朋友推荐文章
		prototype.commend = function(archiveId, email, callback)
		{
			$.getJSON("/Archive/Commend",
				{ archiveId: archiveId, email: email },
				function(data)
				{
					alert(data.Result ? "发送成功!" : "发送失败! 您必须登录以后才能向朋友推荐.");
					if (!isUndefinedOrNull(callback)) callback(data.Result);
				});
		};

		// 收藏文章
		prototype.favorite = function(archiveId)
		{
		};

		// 获取评论
		prototype.getComments = function(archiveId, pageIndex, callback)
		{
			$.get("/Archive/Comments",
				{ archiveId: archiveId, pageIndex: pageIndex },
				function(data, textstaus)
				{
					if (!isUndefinedOrNull(callback)) callback(data);
				});
		};

		// 发表评论
		prototype.postComment = function(archiveId, subject, content, verifycode, callback)
		{
			$.post("/Archive/PostComment",
				{ archiveId: archiveId, subject: subject, content: content, verifycode: verifycode },
				function(data, textStatus)
				{
					switch (data)
					{
						case "VerifyCodeError": alert("验证码错误!"); break;
						case "Success": alert("发布成功!"); break;
						default: alert("发布失败!"); break;
					}

					if (!isUndefinedOrNull(callback)) callback(data);
				});
		};

		// 获取热门文章列表 (AddOn, ScoreThreeDays, ScoreSevenDays, DayScore)
		prototype.getHots = function(style, callback)
		{
			$.get("/Archive/Hot",
				{ style: style },
				function(data, textstaus)
				{
					if (!isUndefinedOrNull(callback)) callback(data);
				});
		};

		// 分享文章
		prototype.share = function(title, content, tags, from, fromUrl, categoryId, username, password, verifycode, callback)
		{
			$.post("/Archive/DoShare",
				{ title: title, content: content, tags: tags, from: from, fromUrl: fromUrl, categoryId: categoryId, username: username, password: password, verifycode: verifycode },
				function(data, textStatus)
				{
					var success = false;
					var archiveId = -1;

					if (data.indexOf("Success") == 0)
					{
						success = true;
						archiveId = data.substring(data.indexOf(",") + 1);
						data = "Success";
					}
					else
					{
						switch (data)
						{
							case "VerifyCodeError": alert("验证码错误!"); break;
							case "InvalidUserName": alert("用户名错误!"); break;
							case "InvalidPassword": alert("密码错误!"); break;
							case "UserDisable": alert("账号被禁用!"); break;
							default: alert("发布失败!"); break;
						}
					}

					if (!isUndefinedOrNull(callback)) callback(data);
					if (success) location.href = "/archive/" + archiveId;
				});
		};

		// 原创文章
		prototype.post = function(title, content, tags, categoryId, username, password, verifycode, callback)
		{
			$.post("/Archive/DoPost",
				{ title: title, content: content, tags: tags, categoryId: categoryId, username: username, password: password, verifycode: verifycode },
				function(data, textStatus)
				{
					var success = false;
					var archiveId = -1;

					if (data.indexOf("Success") == 0)
					{
						success = true;
						archiveId = data.substring(data.indexOf(",") + 1);
						data = "Success";
					}
					else
					{
						switch (data)
						{
							case "VerifyCodeError": alert("验证码错误!"); break;
							case "InvalidUserName": alert("用户名错误!"); break;
							case "InvalidPassword": alert("密码错误!"); break;
							case "UserDisable": alert("账号被禁用!"); break;
							default: alert("发布失败!"); break;
						}
					}

					if (!isUndefinedOrNull(callback)) callback(data);
					if (success) location.href = "/archive/" + archiveId;
				});
		};
	}
}

/// 名称: 用户账号类
function User()
{
	var prototype = this.constructor.prototype;
	if (!prototype.hasOwnProperty("_init_"))
	{
		prototype._init_ = true;

		// 用户注册
		prototype.register = function(username, password, nickname, verifycode, callback)
		{
			$.getJSON("/Account/DoRegister",
				{ username: username, password: password, nickname: nickname, verifycode: verifycode },
				function(data)
				{
					switch (data.Result)
					{
						case "VerifyCodeError": alert("验证码错误!"); break;
						case "Success": alert("注册成功!"); break;
						case "DuplicateUserName": alert("用户名重复!"); break;
						case "DuplicateEmail": alert("邮件地址重复!"); break;
					}

					if (!isUndefinedOrNull(callback)) callback(data.Result);

					// 自动跳转
					if (data.Result == "Success")
					{
						location.href = document.referrer + "?";
					}
				});
		};

		// 用户登录
		prototype.login = function(username, password, saveme, verifycode, callback)
		{
			$.getJSON("/Account/DoLogin",
				{ username: username, password: password, saveme: saveme, verifycode: verifycode },
				function(data)
				{
					switch (data.Result)
					{
						case "VerifyCodeError": alert("验证码错误!"); break;
						case "Success": alert("登录成功!"); break;
						case "InvalidUserName": alert("用户名错误!"); break;
						case "InvalidPassword": alert("密码错误!"); break;
						case "UserDisable": alert("账号被禁用!"); break;
					}

					if (!isUndefinedOrNull(callback)) callback(data.Result);

					if (data.Result == "Success")
					{
						var returnUrl = getRequest().get("returnUrl");

						if (!isNullOrEmpty(returnUrl))
							location.href = decodeURIComponent(returnUrl);
						else
							window.history.go(-1);
							//location.href = "/home";
					}
				});
		};

		// 检查用户名是否可用
		prototype.check = function(username, callback)
		{
			$.getJSON("/Account/UsernameExists",
				{ username: username },
				function(data)
				{
					alert(data.Result ? "用户不可用!" : "用户名可用!")
					if (!isUndefinedOrNull(callback)) callback(data.Result);
				});
		};

		// 找回密码
		prototype.findPassword = function(username, verifycode, callback)
		{
			$.getJSON("/Account/DoFindPassword",
				{ username: username, verifycode: verifycode },
				function(data)
				{
					switch (data.Result)
					{
						case "VerifyCodeError": alert("验证码错误!"); break;
						case "UsernameNotExists": alert("用户名错误!"); break;
						case "Success": alert("密码已发往您的邮箱!"); break;
					}

					if (!isUndefinedOrNull(callback)) callback(data.Result);
				});
		};

		// 获取当前登录用户信息
		prototype.getLoginUser = function(callback)
		{
			$.getJSON("/Account/GetUserInfo",
				function(data)
				{
					if (!isUndefinedOrNull(callback)) callback(data);
				});
		};

		// 更新个人信息
		prototype.update = function(nickname, sex, email, headimage, signname, callback)
		{
			$.post("/Space/DoUpdate",
				{ nickname: nickname, sex: sex, email: email, headimage: headimage, signname: signname },
				function(data, textStatus)
				{
					alert(textStatus == "success" ? "更新成功!" : "更新失败!");
					if (!isUndefinedOrNull(callback)) callback(data, textStatus);
				});
		};

		// 修改用户密码
		prototype.changePassword = function(oldPassword, newPassword, callback)
		{
			$.getJSON("/Space/DoChangePassword",
				{ oldPassword: oldPassword, newPassword: newPassword },
				function(data)
				{
					switch (data.Result)
					{
						case "Success": alert("修改成功!"); break;
						case "InvalidUserName": alert("用户名错误!"); break;
						case "InvalidPassword": alert("旧密码错误!"); break;
						case "UserDisable": alert("账号被禁用!"); break;
					}

					if (!isUndefinedOrNull(callback)) callback(data.Result);
				});
		};
	}
}

/// 名称: 显示验证码
/// 示例: new VerifyCode().showRegisterCode("#span1");
function VerifyCode()
{
	var prototype = this.constructor.prototype;
	if (!prototype.hasOwnProperty("_init_"))
	{
		prototype._init_ = true;

		var show = function(spanId, codeId)
		{
			if ($("#imgVerifyCode").length > 0) return;

			var element = $("<img />");
			element.attr({ id: "imgVerifyCode", src: "/Misc/VerifyCode/" + codeId, alt: "点击更换验证码!" });
			element.click(function() { this.src += "?"; });

			if (!startWith(spanId, "#")) spanId = "#" + spanId;
			$(spanId).prepend(element);
		};

		// 显示注册验证码
		prototype.showRegisterCode = function(spanId)
		{
			show(spanId, "Register");
		}

		// 显示登录验证码
		prototype.showLoginCode = function(spanId)
		{
			show(spanId, "Login");
		}

		// 显示找回密码验证码
		prototype.showFindPasswordCode = function(spanId)
		{
			show(spanId, "FindPassword");
		}

		// 显示文章评论验证码
		prototype.showArchiveCommentCode = function(spanId)
		{
			show(spanId, "ArchiveComment");
		}

		// 显示车型评论验证码
		prototype.showCarTypeCommentCode = function(spanId)
		{
			show(spanId, "CarTypeComment");
		}
	}
}

function fiximage(thumbs_size)
 {
	var max = thumbs_size.split('x');
	var fixwidth = max[0];
	var fixheight = max[1];
	imgs = document.getElementsByTagName('img');
	for(i=0;i<imgs.length;i++)
	 {
		w=imgs[i].width;h=imgs[i].height;
		if(w>fixwidth) { imgs[i].width=fixwidth;imgs[i].height=h/(w/fixwidth);}
		if(h>fixheight) { imgs[i].height=fixheight;imgs[i].width=w/(h/fixheight);}
	}
 }
