public void login() {
		try {
			this.con = new C("http://lixian.vip.xunlei.com/task.html");
			Document doc = this.con.get();
			
			String url = "http://login.xunlei.com/sec2login/";
			this.con.url("http://login.xunlei.com/check?u=sel0537504&cachetime="
					+ System.currentTimeMillis()).get();
			
			String vcode = this.con.getCookie("check_result").split("0:")[1]
					.toUpperCase();
			S s = S.getInstance();
			
			doc = this.con.url(url).data("u", s.get("user"))
					.data("p", md5(md5(md5(s.get("password"))) + vcode))
					.data("verifycode", vcode).data("login_enable", "1")
					.data("login_hour", "720").post();
			
			if(this.load()){
				this.refresh();
				Iterator<String> it = this.list.keySet().iterator();
				while(it.hasNext()){
					String key = it.next();
					ListItem value = this.list.get(key);
					if(value.getStatus()==ListItem.STATUS_DOWNLOADING){
						T.addThread(new Thread_Down(value,this.getCookie()));
					}
				}
			}else{
				doc = this.con.url(
						"http://dynamic.cloud.vip.xunlei.com/login?from=0").get();
				
				Elements rwlist = doc.select(".rw_list");
				for (int i = 0, max = rwlist.size(); i < max; i++) {
					Element rw = rwlist.get(i);
					if (rw.select(".w05 div em").html().equals("已经过期"))break;
					if(rw.attr("openformat").equals("other"))continue;
					String taskid = rw.attr("taskid");
					String name = rw.select("#taskname" + taskid).val();
					String size = rw.select("#size" + taskid).html();
					String downURL = rw.select("#dl_url" + taskid).val();
					
					this.list.put(taskid, new ListItem(taskid,name,size,downURL,ListItem.STATUS_STOP));
				}
				this.save();
			}
			
			
		} catch (IOException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
	}