/*
 * create by hobo
 */

try
{
	document.domain = "qq.com";
}
catch (e)
{
}

//Doodle
var Doodle = new Object();

Doodle.Configure = {
	version: "1.1",
	author: "hobo",
	doodle_domain: "http://comic.qq.com/",
	act_v3_domain: "http://act.comic.qq.com/",
	data_domain: "http://data1.act.qq.com/"
};

//goto homepage
Doodle.reload = function()
{
	window.location.href = window.location.href;
};
Doodle.goBack = function()
{
	if (window.history.length != 0)
	{
		window.history.go(-1);
	}
	else
	{
		Doodle.gotoHomePage();
	}
};
Doodle.gotoHomePage = function()
{
	window.location.href = "index.shtml";
};
Doodle.gotoMyHomePage = function(replace)
{
	if (replace)
	{
		window.location.replace(Doodle.Configure.doodle_domain + "doodle/myhome.shtml");
	}
	else
	{
		window.location.href = Doodle.Configure.doodle_domain + "doodle/myhome.shtml";
	}
};
Doodle.gotoEssencePage = function(order, type)
{
	window.location.href = "/doodle/essence.shtml?order=" + escape(order) +
		(!!type ? "&type=" + escape(type): "");
};
Doodle.gotoSearchPage = function(keyword, order)
{
	window.location.href = "/doodle/search.shtml?keyword=" + escape(keyword) +
		(!!order ? "&order=" + escape(order): "");
};
Doodle.gotoMasterPage = function(order)
{
	window.location.href = "/doodle/master.shtml" +
		(!!order ? "?order=" + escape(order): "");
};
Doodle.gotoRankPage = function(type)
{
	window.location.href = "/doodle/rank.shtml" +
		(!!type ? "?type=" + escape(type): "");
};

//转帖代码
Doodle.Transmit = {
	QQFavorite: function()
	{
		var url = "http://shuqian.qq.com/post?jumpback=2&noui=1&title=" +
				encodeURIComponent(Doodle.Page._wMsg.artinfo.art_title) +
				"&uri=" + encodeURIComponent(document.location.href) +
				"&tagsName=" + encodeURIComponent(Doodle.Page._wMsg.artinfo.art_tag_1) + 
				"&description=" + encodeURIComponent(Doodle.Page._wMsg.artinfo.art_content);
		if (!window.open(url))
		{
			window.location.href = url;
		}
	},
	
	Qzone: function()
	{
		var url = "http://" + Doodle.User.currentUser.uin + ".qzone.qq.com/addNewBlog" +
			"?title=" + escape(Doodle.Page._wMsg.artinfo.art_title) +
			"&category=" + escape(Doodle.Page._wMsg.artinfo.art_type) +
			"&content=" + escape("[flash,500,406]" +
				Doodle.Configure.doodle_domain +
				"/doodle/styles/swf/reviewer.swf?id=" + 
				Doodle.Page._wMsg.artinfo.art_url + "[/flash]") +
			escape(Doodle.Page._wMsg.artinfo.art_content.left(120));
		if (!window.open(url))
		{
			window.location.href = url;
		}
	},

	switchTab: function(n)
	{
		for (var i=1; i<=3; i++)
		{
			$("Transmit_Img_" + i).src = "/doodle/styles/images/bottom/b" + i + ".gif";
			$("Transmit_Border_" + i).style.display = "none";
		}

		$("Transmit_Img_" + n).src = "/doodle/styles/images/bottom/c" + n + ".gif";
		$("Transmit_Border_" + n).style.display = "block";
	},

	copy: function(input)
	{
		$(input).select();

		if (window.clipboardData)
		{
			window.clipboardData.setData("Text", $(input).value);
			Doodle.Transmit.copyCallback(true);
		}
		else if (Global_FlashVersion >= 6)
		{
			var _clipboard_container_ = "clipboard_container";
			if (!$(_clipboard_container_))
			{
				var _tmp = document.createElement('div');
				_tmp.setAttribute("id", _clipboard_container_);
				document.body.appendChild(_tmp);
			}

			var _clipboard_swf = new SWFObject("/doodle/styles/swf/clipboard.swf", "_clipboard_", "0", "0", "8", "");
			_clipboard_swf.addVariable("clipboard", $(input).value);
			_clipboard_swf.addVariable("callback", "Doodle.Transmit.copyCallback");
			_clipboard_swf.write(_clipboard_container_);
		}
		else
		{
			Doodle.Transmit.copyCallback(false);
		}
	},

	copyCallback: function(success)
	{
		if (success)
		{
			alert("转帖代码已经复制到剪贴板中");
		}
		else
		{
			alert("转帖代码复制到剪贴板失败");
		}
	}
};

//涂鸦搜索
Doodle.Search = {
	clearKeyword: function(input)
	{
		input.style.color = "#000";
		if (input.value == $("Select").options[$("Select").selectedIndex].getAttribute("defaultValue"))
		{
			input.value = "";
		}
	},

	resetKeyword: function(input)
	{
		input.style.color = "#999";
		if (input.value == "")
		{
			input.value = $("Select").options[$("Select").selectedIndex].getAttribute("defaultValue");
		}
	},

	changeKeyword: function(input)
	{
		if (input.value == $("Select").options[Math.abs($("Select").selectedIndex-1)].getAttribute("defaultValue"))
		{
			input.value = $("Select").options[$("Select").selectedIndex].getAttribute("defaultValue");
		}
	},

	searchKeyword: function(keyword)
	{
		window.open("/doodle/search.shtml?keyword=" + window.escape(keyword.trim()));
	},

	submit: function(input)
	{
		if (input.value == $("Select").options[0].getAttribute("defaultValue") ||
			input.value == $("Select").options[1].getAttribute("defaultValue") ||
			input.value.trim() == "")
		{
			alert("搜索内容不能为空");
			return;
		}

		if ($("Select").value == 0)
		{
			Doodle.Search.searchKeyword(input.value);
		}
		else if ($("Select").value == 1)
		{
			if (!input.value.isQQ())
			{
				alert("请输入正确的QQ号码");
			}
			else
			{
				window.open("/doodle/user.shtml?uid=" + input.value.trim());
			}
		}
	}
};

//PGV统计
Doodle.pgv = function()
{
	if (typeof pgvMain == "function")
	{
		pgvMain();
	}
};

//加载状态提示tips
Doodle.StatusBar = {
	show: function(s)
	{
		$("Loading").innerHTML = (s!=null) ? s : "数据加载中...";
		$("Loading").style.top = Page.getBodyTop() + "px";
		$("Loading").style.left = Page.getBodyLeft() + "px";
		$("Loading").style.display = "block";
	},

	hide: function()
	{
		$("Loading").style.display = "none";
	}
};

//打分器
Doodle.Rate = {
	_mark: null,
	_wId: null,
	rate: function(mark, wId)
	{
		var currUser = Doodle.User.currentUser.uin
		Doodle.Rate._mark = mark;
		Doodle.Rate._wId = wId;

		if (!currUser || !currUser.isQQ())
		{
			var callback = function()
			{
				Doodle.User.init(function(){Doodle.Rate.rate(Doodle.Rate._mark, Doodle.Rate._wId);});
			};
			Doodle.User.login(callback);
		}
		else if (currUser == Doodle.Page._wMsg.artinfo.user_id)
		{
			Doodle.Rate.callback(4);
		}
		else
		{
			Doodle.StatusBar.show("投票中...");
			window.frames['Ansy_Post'].location.href = Doodle.Configure.act_v3_domain +
				"v3/doodle/act/rate.php?site=" + Doodle.Act.Config.site +
				"&wid=" + wId +
				"&rate=" + mark +
				"&cache=" + Math.random();
		}
	},

	callback: function(code)
	{
		Doodle.StatusBar.hide();

		switch (code)
		{ //0:成功 1:未登录 2:已打分 3:作品不存在 4:为自己的作品打分 5:分数不在1-5之前
			case -1:
				Cookie.clearCookie(Doodle.User.currentUser.uin+"_nick", "/", "qq.com");
				Doodle.User.init();
				break;
			case 0:
				alert("投票成功，票数10分钟内更新");
				try
				{
					$("doodle_rate_btn").outerHTML = $("doodle_rate_btn").innerHTML;
				}
				catch (e)
				{
				}
				break;
			case 1:
				Doodle.User.login(function(){Doodle.User.init();Doodle.Rate.rate(Doodle.Rate._mark, Doodle.Rate._wId);});
				break;
			case 2:
				alert("今天您已经为该作品投票，请明天再来吧");
				break;
			case 3:
				alert("你要打分的作品不存在");
				break;
			case 4:
				alert("不能为自己的作品投票");
				break;
			case 5:
				alert("分数应该在1-5分之前");
				break;
			default:
				alert("系统繁忙，请稍后再试");
				break;
		}
	}
};

Doodle.Code = {
	_wId: null,
	rate: function(wId)
	{
		var currUser = Doodle.User.currentUser.uin
		Doodle.Code._wId = wId;

		if (!/^\w{9}$/.test($("gg_code").value))
		{
			Doodle.Code.callback(4);
			return;
		}

		if (!currUser || !currUser.isQQ())
		{
			var callback = function()
			{
				Doodle.User.init(function(){Doodle.Code.rate(Doodle.Code._wId);});
			};
			Doodle.User.login(callback);
		}
		else
		{
			Doodle.StatusBar.show("加票中...");
			window.frames['Ansy_Post'].location.href = Doodle.Configure.act_v3_domain +
				"v3/doodle/act/code.php?wid=" + wId +
				"&code=" + $("gg_code").value +
				"&cache=" + Math.random();
		}
	},

	callback: function(code)
	{
		Doodle.StatusBar.hide();

		switch (code)
		{ //0:成功 1:未登录 2:已打分 3:作品不存在 4:刮刮卡格式错误 5:分数不在1-5之前
			case -1:
				Cookie.clearCookie(Doodle.User.currentUser.uin+"_nick", "/", "qq.com");
				Doodle.User.init();
				break;
			case 0:
				alert("加票成功，票数10分钟内更新");
				try
				{
					$("gg_code").value = "";
					$('TM').style.display='none';
				}
				catch (e)
				{
				}
				break;
			case 1:
				Doodle.User.login(function(){Doodle.User.init();Doodle.Code.rate(Doodle.Code._wId);});
				break;
			case 2:
				alert("今天您已经为该作品投票，请明天再来吧");
				break;
			case 3:
				alert("你输入的刮刮卡条码已经过期");
				break;
			case 4:
				alert("请输入正确的刮刮卡条码");
				break;
			case 5:
				alert("分数应该在1-5分之前");
				break;
			default:
				alert("系统繁忙，请稍后再试");
				break;
		}
	}
};

//错误提示信息模式窗口
Doodle.Modal = {
	showSelect: function()
	{
		var sel = $T("select");

		for (var i=0; i<sel.length; i++)
		{
			sel[i].style.visibility = "visible";
		}
	},

	hideSelect: function()
	{
		var sel = $T("select");

		for (var i=0; i<sel.length; i++)
		{
			sel[i].style.visibility = "hidden";
		}
	},

	showFloat: function()
	{
		$("Float").style.width = Page.getPageWidth() + "px";
		$("Float").style.height = Page.getPageHeight() + "px";
		Element.show("Float");
	},

	hideFloat: function()
	{
		Element.hide("Float");
	}
};

Doodle.Modal.Error = {
	show: function(error)
	{
		Doodle.Modal.hideSelect();
		Doodle.Modal.showFloat();
		$("Error_Msg").style.left = (Page.getBodyWidth() - 400)/2 + "px";
		$("Error_Msg").style.top = Page.getBodyTop() + 100 + "px";
		Element.show("Error_Msg");
		$("msg").innerHTML = error || "出错啦!";
		Element.show("Error_Msg");

		Doodle.Modal.Error.oY = Page.getBodyTop();
		Doodle.Modal.Error.oTimer = window.setInterval(Doodle.Modal.Error.scroll, 1);
	},

	oY: 0,
	oTimer: null,
	scroll: function()
	{
		var winY = Page.getBodyTop();
		var curY = Element.getElementTop("Error_Msg");

		var percent = 0.2 * (winY - Doodle.Modal.Error.oY);

		if (percent > 0)
		{
			percent = Math.ceil(percent);
		}
		else
		{
			percent = Math.floor(percent);
		}

		$("Error_Msg").style.top = curY + percent + "px";
		Doodle.Modal.Error.oY += percent;

		Doodle.Modal.showFloat();
	}
};

//登录模式窗口
var ptlogin2_onResize = function(w, h)
{
	try
	{
		$("Login_Frame").width = w;
		$("Login_Frame").height = h;
	}
	catch (e)
	{
	}
};

Doodle.Modal.LoginBox = {
	show: function(callback)
	{
		Doodle.Modal.hideSelect();
		Doodle.Modal.showFloat();
		$("Login_Box").style.left = (Page.getBodyWidth() - 340)/2 + "px";
		$("Login_Box").style.top = Page.getBodyTop() + 100 + "px";
		Element.show("Login_Box");
		$("Login_Frame").src = "http://ui.ptlogin2.qq.com/cgi-bin/login?link_target=blank&f_url=loginerroralert&hide_title_bar=1&style=0&target=self&appid=5000501&s_url=http://comic.qq.com/doodle/login.html";

		Doodle.Modal.LoginBox.oY = Page.getBodyTop();
		Doodle.Modal.LoginBox.oTimer = window.setInterval(Doodle.Modal.LoginBox.scroll, 1);
	},

	hide: function()
	{
		Doodle.Modal.showSelect();
		Doodle.Modal.hideFloat();
		Element.hide("Login_Box");
		$("Login_Frame").src = "about:blank";

		window.clearInterval(Doodle.Modal.LoginBox.oTimer);
	},

	oY: 0,
	oTimer: null,
	scroll: function()
	{
		var winY = Page.getBodyTop();
		var curY = Element.getElementTop("Login_Box");

		var percent = 0.2 * (winY - Doodle.Modal.LoginBox.oY);

		if (percent > 0)
		{
			percent = Math.ceil(percent);
		}
		else
		{
			percent = Math.floor(percent);
		}

		$("Login_Box").style.top = curY + percent + "px";
		Doodle.Modal.LoginBox.oY += percent;

		Doodle.Modal.showFloat();
	},

	login: function(callback)
	{
		HashTable.getInstance().set("login_callback", callback);
		this.show();
	},

	ok: function()
	{
		if (typeof HashTable.getInstance().get("login_callback") == "function")
		{
			HashTable.getInstance().get("login_callback")();
			HashTable.getInstance().remove("login_callback");
		}
		else
		{
			Doodle.gotoHomePage();
			return;
		}
		this.hide();
	},

	cancel: function()
	{
		HashTable.getInstance().remove("login_callback");
		this.hide();
	}
};

//登录用户信息
Doodle.User = {
	currentUser: {
		uin: 0,
		nick: ""
	},

	init: function(callback)
	{
		Doodle.User.currentUser.uin = 0;
		Doodle.User.currentUser.nick = "";

		if (Cookie.getCookie("uin") && Cookie.getCookie("skey"))
		{
			Doodle.User.currentUser.uin = Cookie.getCookie("uin").replace(/^o0*/, "");

			if (Cookie.getCookie(Doodle.User.currentUser.uin+"_nick"))
			{
				Doodle.User.currentUser.nick = Cookie.getCookie(Doodle.User.currentUser.uin+"_nick");
				Doodle.User.callback(callback);
			}
			else
			{
				ProxyLoader.load(Doodle.Configure.act_v3_domain+"v3/doodle/checklogin.php?cache="+Math.random(), {
					onSuccess: function(xmlHttp)
					{
						if (xmlHttp.responseJS.code == 0)
						{
							var now = new Date(new Date().getTime() + 10*60*1000);
							Cookie.setCookie(Doodle.User.currentUser.uin+"_nick", xmlHttp.responseJS.nick, now, "/", "qq.com");
							Doodle.User.currentUser.nick = Cookie.getCookie(Doodle.User.currentUser.uin+"_nick");

							Doodle.User.callback(callback);
						}
						else if (xmlHttp.responseJS.code == -1)
						{
							alert("对不起，由于\""+xmlHttp.responseJS.msg+"\"原因，您已经被系统屏蔽，无法登录");
							Doodle.gotoHomePage();
						}
					}
				});
			}
		}
		else
		{
			Doodle.User.callback(callback);
		}
	},

	callback: function(callback)
	{
		$("Current_User").innerHTML = TrimPath.processDOMTemplate("Current_User_View", Doodle.User.currentUser);

		if (typeof callback == "function")
		{
			callback();
		}
	},

	login: function(callback)
	{
		Doodle.Modal.LoginBox.login(callback);
	},

	logout: function(callback, noConfirm)
	{
		if (!noConfirm)
		{
			if (!window.confirm("是否确定登出腾讯涂鸦馆？"))
			{
				return;
			}
		}

		Cookie.clearCookie(Doodle.User.currentUser.uin+"_nick", "/", "qq.com");

		Doodle.User.currentUser.uin = 0;
		Doodle.User.currentUser.nick = "";

		$("Current_User").innerHTML = TrimPath.processDOMTemplate("Current_User_View", Doodle.User.currentUser);

		ProxyLoader.load(Doodle.Configure.act_v3_domain+"v3/doodle/logout.php?id="+Math.random(), {
			onSuccess: function(xmlHttp)
			{
				if (xmlHttp.responseJS.code == 0)
				{
					if (typeof callback == "function")
					{
						callback();
					}
				}
			}
		});
	},

	home: function()
	{
		if (Cookie.getCookie("uin") != null)
		{
			window.location.href = "/doodle/user.shtml?uid=" + Cookie.getCookie("uin").replace(/^o0*/, "");
		}
		else
		{
			Doodle.User.login(Doodle.User.init.bind(window, Doodle.User.home));
		}
	},

	jump: function(callback)
	{
		if (!!Doodle.User.currentUser.uin)
		{
			callback();
		}
		else
		{
			Doodle.User.login(function(){Doodle.User.init();callback();});
		}
	}
};

//跨域异步加载
Doodle.Proxy = {
	callbackFactory: function(callback)
	{
		return {
			onSuccess: function(xmlHttp)
			{
				callback(xmlHttp);
			},
			onFailure: function()
			{
				callback(null);
			}
		};
	},

	loadUserMsg: function(uId, callback)
	{
		var url = Doodle.Configure.act_v3_domain +
			"v3/doodle/userinfo.php?uid=" + uId +
			"&cache=" + Math.random();
		ProxyLoader.load(url, this.callbackFactory(callback));
	},

	loadWorkMsg: function(wId, home, callback)
	{
		var url = Doodle.Configure.act_v3_domain +
			"v3/doodle/act/artinfo.php?site=" + Doodle.Act.Config.site +
			"&wid=" + wId +
			(home ? "&myhome=1" : "") +
			"&cache=" + Math.random();
		ProxyLoader.load(url, this.callbackFactory(callback));
	},

	loadUserWorks: function(uId, page, offset, home, callback)
	{
		var url = Doodle.Configure.act_v3_domain +
			"v3/doodle/act/userarts.php?site=" + Doodle.Act.Config.site +
			"&uid=" + uId +
			"&page=" + page +
			"&offset=" + offset +
			(home ? "&myhome=1" : "") +
			"&cache=" + Math.random();
		ProxyLoader.load(url, this.callbackFactory(callback));
	},

	loadEssenceWorks: function(order, type, page, offset, callback)
	{
		var url = Doodle.Configure.act_v3_domain +
			"v3/doodle/act/essencearts.php?site=" + Doodle.Act.Config.site +
			"&order=" + order + (type==null ? "" : "&type=" + type) +
			"&page=" + page +
			"&offset=" + offset +
			"&cache=" + Math.random();
		ProxyLoader.load(url, this.callbackFactory(callback));
	},

	loadEssenceRankWorks: function(order, type, page, offset, callback)
	{
		var url = Doodle.Configure.act_v3_domain +
			"v3/doodle/act/essencearts.php?site=" + Doodle.Act.Config.site +
			"&order=" + order + (type==null ? "" : "&type=" + type) +
			"&page=" + page +
			"&o=wizard" +
			"&offset=" + offset +
			"&cache=" + Math.random();
		ProxyLoader.load(url, this.callbackFactory(callback));
	},

	loadSameTypeWorks: function(type, callback)
	{
		var typeUrlFactory = {
			"卡通动漫": Doodle.Configure.doodle_domain + "c/doodle/1.htm",
			"人物写真": Doodle.Configure.doodle_domain + "c/doodle/2.htm",
			"色彩艺术": Doodle.Configure.doodle_domain + "c/doodle/3.htm",
			"自然风光": Doodle.Configure.doodle_domain + "c/doodle/4.htm",
			"节日祝福": Doodle.Configure.doodle_domain + "c/doodle/5.htm",
			"爱情物语": Doodle.Configure.doodle_domain + "c/doodle/6.htm",
			"传统艺术": Doodle.Configure.doodle_domain + "c/doodle/7.htm",
			"另类抽象": Doodle.Configure.doodle_domain + "c/doodle/8.htm",
			"新手涂鸦": Doodle.Configure.doodle_domain + "c/doodle/9.htm",
			"其它类型": Doodle.Configure.doodle_domain + "c/doodle/10.htm"
		};
		var url = typeUrlFactory[type];
		if (typeof url == "undefined")
		{
			url = Doodle.Configure.act_v3_domain +
				"v3/doodle/essencearts.php?order=commend&type=" + type +
				"&page=1&offset=10&cache=" + Math.random();
		}
		ProxyLoader.load(url, this.callbackFactory(callback));
	},

	loadSearchWorks: function(order, keyword, page, offset, callback)
	{
		var url = Doodle.Configure.act_v3_domain +
			"v3/doodle/searcharts.php?order=" + order +
			"&keyword=" + keyword +
			"&page=" + page +
			"&offset=" + offset +
			"&cache=" + Math.random();
		ProxyLoader.load(url, this.callbackFactory(callback));
	},

	loadRate: function(uId, wId, callback)
	{
		uId = String(parseInt(uId).format(9));
		var url = Doodle.Configure.data_domain +
			"rate/" + uId.substr(0,3) + "/" + uId.substr(3,3) + "/" + uId.substr(6,3) +
			"/" + wId + ".json";
		ProxyLoader.load(url, this.callbackFactory(callback));
	},

	loadMasters: function(sType, page, offset, callback)
	{
		var url = Doodle.Configure.act_v3_domain +
			"v3/doodle/users.php?page=" + page +
			"&offset=" + offset +
			((sType=="boy") ? "&sex=0" : ((sType=="girl") ? "&sex=1" : "")) +
			"&cache=" + Math.random();
		ProxyLoader.load(url, this.callbackFactory(callback));
	},

	loadRank: function(page, callback)
	{
		var url = Doodle.Configure.data_domain +
			"doodle/j.art_rank_list_" + page + ".json";
		ProxyLoader.load(url, this.callbackFactory(callback));
	}
};/*  |xGv00|5ef726f05026a08f51474058970676f0 */