//http://ptlogin2.qq.com/getimage?aid=8000108&sds=0.4982859566471627
var imgcacheDomain = "imgcache.qq.com";
//风格列表
var STYLE_MAP = [
	{'label': '典雅博客型', 'skin': 39876, 'style': 4, 'layout':1, 'mode':3 , 'center':1},
	{'label': '照片分享型', 'skin': 32856, 'style': 6, 'layout':14, 'mode':3 , 'center':1},
	{'label': '个性炫酷型', 'skin': 36513, 'style': 3, 'layout':1, 'mode':1 , 'center':1},
	{'label': '蓝调优雅型', 'skin': null, 'style':151, 'layout':1, 'mode':3 , 'center':1}
];
//是否已经按下发送按钮
var HAVE_SUBMIT = false;
//是否是TT浏览器
var isTT=(function(){
			if(navigator.userAgent&&(navigator.userAgent.toString().indexOf("TencentTraveler") != -1)){ 
				return true;
			}else{
				return false;
			}
		})();
//获取用户基础信息的CGI
var GET_USERINFO_URL = "http://dynamic.qzone.qq.com/cgi-bin/portal/get_qq_nick";
//注册信息提交的URL
var REGEDIT_URL = "http://dynamic.qzone.qq.com/cgi-bin/portal/qzone_register";
//居住地选择器
var live_slt;

/**
 * 此函数用于跳转
 */
function jump(){
	//不要问为什么，以下代码历史原因造成
	var _p = QZONE.cookie.get("gotloads");
	if(!!_p || (document.referrer.indexOf("cgi_select_activity"))){
		//deleteCookie("gotloads");
	} else {
		location.href = "/qzone/web/load.shtml";
	}
}

/**
 * 当页面整体加载完毕，就会执行此方法
 */
function main(){
	document.domain = "qq.com";
	jump();
	setTimeout(sendPV, 500);
	initial();
	if (checkLogin() > 10000) {
		getUserInfo();
	}
	else {
		QZONE.FrontPage.showLoginBox();
	}
}

/**
 * 初始化组件
 */
function initial(){
	generateFlashLoader();

	$("qzonename_txt").value = "";
	$("nickname_txt").value = "";
	setRadioGroupValue("sex", "1");
	//初始化日历组件
	$("birthday_txt").value = "1970-01-01";
	regCalendar = QZONE.widget.calendar.bind($("birthday_txt"), 1);
	regCalendar.connectString = "-";
	regCalendar.yearPattern = "";
	regCalendar.monthPattern = "";
	regCalendar.datePattern = "";
	regCalendar.onDateSelected = function(d, i){
		$("birthday_txt").value = regCalendar.outPut(d);
		if(!i){
			regCalendar.hide();
		}
	}

	var d = new Date();
	d.setFullYear(1970);
	d.setMonth(0);
	d.setDate(1);
	regCalendar.setDate(d);
	//初始化省市选择器
	//setProvinceDataProvider($("province_slt"));

	live_slt = QZONE.widget.addressSelector.create($("live_address"));
	//live_slt.setLocation("——", "——", "——");

	live_slt.onChange = function(){
		if(live_slt.getCityCode() == "0" && live_slt.getStateCode() == "0" && live_slt.getCountryCode() == "0"){
			result = false;
			msg = "请选择所在地。";
			$("address_tips").innerHTML = msg;
			$("address_p").className = "input_now";
		} else {
			$("address_tips").innerHTML = "";
			$("address_p").className = "";
		}
	}

	//为各个输入组件绑定方法
	//QZONE.event.addEvent($("submit_btn"), "click", submitData);
	var ns = com.qq.qzone.form;

	ns.setTextAreaMaxLen($("qzonename_txt"), 30, function(evt){
		if(isTT&&($("qzonename_txt").value.indexOf('&')!=-1)){
			$("qzonename_tips").innerHTML ='"&"等特殊字符可能导致开通不成功。';
		} else {
			$("qzonename_tips").innerHTML = "已输入" + getRealLen($("qzonename_txt").value) + "个字符，最多可输入30个字符";
		}
	});

	QZONE.event.addEvent($("qzonename_txt"), "blur", function(evt){
		$("qzonename_tips").innerHTML = "";
		removeRemindStyle($("qzonename_tips"));
		if(trim($("qzonename_txt").value) == ""){
			result = false;
			msg = "请填写您的空间名称。";
			setRemindStyle($("qzonename_tips"), msg);
		} else if(isTT&&($("qzonename_txt").value.indexOf('&')!=-1)){
			result = false;
			msg='"&"等特殊字符可能导致开通不成功。'
			setRemindStyle($("qzonename_tips"), msg);
		}
	});

	QZONE.event.addEvent($("verify_txt"), "blur", function(evt){
		if($("verify_txt").value.length != 4){
			if($("verify_txt").value.length > 0){
				msg = "验证码不够4位，请重新填写。";
			} else {
				msg = "您还没有填写验证码。";
			}
			result = false
			$("verify_tips").innerHTML = msg;
			$("verify_txt").parentNode.className = "input_now";
		} else {
			$("verify_tips").innerHTML = "";
			$("verify_txt").parentNode.className = "";
		}
	});

	ns.setTextAreaMaxLen($("nickname_txt"), 12, function(evt){
		if(isTT&&($("nickname_txt").value.indexOf('&')!=-1)){
			$("nickname_tips").innerHTML ='"&"等特殊字符可能导致开通不成功。';
		} else {
			$("nickname_tips").innerHTML = "已输入" + getRealLen($("nickname_txt").value) + "个字符，最多可输入12个字符";
		}
	});

	ns.setTextAreaMaxLen($("verify_txt"), 4);

	QZONE.event.addEvent($("nickname_txt"), "blur", function(evt){
		removeRemindStyle($("nickname_tips"));
		if(trim($("nickname_txt").value) == ""){
			result = false;
			msg = "请填写您的昵称。";
			setRemindStyle($("nickname_tips"), msg);
		} else if(isTT&&($("nickname_txt").value.indexOf('&')!=-1)){
			result = false;
			msg='"&"等特殊字符可能导致开通不成功。'
			setRemindStyle($("nickname_tips"), msg);
		}
	});
	QZONE.event.addEvent($("agree_chk"), "change", function(evt){
		if(!$("agree_chk").checked){
			msg = "请确认已勾选QQ空间服务条款。";
			$("agree_chk").parentNode.className = "p_padding p_xy input_now";
			$("agree_tips").innerHTML = msg;
			result = false;
		} else {
			$("agree_tips").innerHTML = "";
			$("agree_chk").parentNode.className = "p_padding";
		}
	});
	ns.initVerifyImage("verify_img");
}

function handleStyleSelected(ele, rd){

	$("style_1").parentNode.parentNode.getElementsByTagName("p")[0].className = "img_panel";
	$("style_2").parentNode.parentNode.getElementsByTagName("p")[0].className = "img_panel";
	$("style_3").parentNode.parentNode.getElementsByTagName("p")[0].className = "img_panel";
	$("style_4").parentNode.parentNode.getElementsByTagName("p")[0].className = "img_panel";
	rd.checked = true;
	ele.parentNode.className = "img_panel_hover";
}

/**
 * 更换验证码
 */
function changeVerifyKey(){
	com.qq.qzone.form.getVerifyKey($('verify_img'));
	$("verify_txt").focus();
	if($("verify_txt").value != ""){
		$("verify_txt").select();
	}
}

/**
 * 提交开通数据并且跳转页面
 */
function submitData(){
	//日，自家人还要搞这套玩艺...
	if(isTT){
		//通过flash发送跨域请求，需要crossdomain.xml
		submitDataByFlash();
		return false;
	}
	
	if (!HAVE_SUBMIT && checkInfo(true).re) {
		var _d = gatherInfo();
		var _loader = new QZONE.FormSender(REGEDIT_URL, "post", _d, "gb2312");
		if (_loader) {
			_loader.onSuccess = handleSubmitComplete;
			_loader.onError = handleSubmitError;
			HAVE_SUBMIT = true;
			_loader.send();
		}
	}
	return true;
}

function handleSubmitError(re){
	HAVE_SUBMIT = false;
	showMsg("网络繁忙，请稍后重试！");
	changeVerifyKey();
}

/**
 * 当请求
 * @param {Object} re
 */
function handleSubmitComplete(re){
	HAVE_SUBMIT = false;
	var url;
	if(re.ret == "succ"){
		showMsg("注册成功，即将进入到您的空间！", 2000);
		var s = QZONE.cookie.get("inviteApp");
		if(s){
			var appid = s.split("_")[2];
			url = "http://user.qzone.qq.com/" + checkLogin()+"/myhome/"+appid;
		}else{
			url = "http://user.qzone.qq.com/" + checkLogin();
		}
		setTimeout(function(){
			window.location.href = url
		}, 2000);
	} else {
		changeVerifyKey();
		if(re.type == "login"){
			QZONE.FrontPage.showLoginBox();
			return false;
		} else if(re.type == "verify"){
			$("verify_tips").innerHTML = "验证码错误，请重新填写。";
			$("verify_txt").parentNode.className = "input_now";
			return false;
		}
		showMsg(re.msg);
		return false;
	}
}

/**
 * 当空间样式被选中后所执行的方法
 */
function handleStyleSelectd(){
	var _s = parseInt(getRadioGroupValue("qzone_style"), 10);
	for(var i=0; i<3; i++){
		$("style_rd_" + _s).parentNode.parentNode.className = "";
	}
	$("style_rd_" + _s).className = "tooltip_now";
}

/**
 * 获取用户的基础信息
 */
function getUserInfo(){
	var _l = new QZONE.JSONGetter(GET_USERINFO_URL, void (0), {"uin": checkLogin()}, "gb2312");
	_l.onSuccess = function(re){
		if(typeof(re.data) != "undefined"){
			renderUserInfo(re.data);
		} else {
			if(typeof(re.error) != "undefined"){
				showMsg(re.error.msg);
			}
			if(re.error.type == "login"){
				QZONE.FrontPage.showLoginBox();
			}
		}
	};

	_l.onError = function(re){
		//无法获取到用户的基础信息，只能采用忽略措施
	};
	_l.send("_Callback");
}

/**
 * 显示用户信息列表
 * @param {Object} d 信息源
 */
function renderUserInfo(d){
	d.nick = restHTML(d.nick);
	if(isTT&&d.nick&&(d.nick.indexOf('&')!=-1)) d.nick=d.nick.replace(/&/g,'');
	$("qzonename_txt").value = (d.nick.length > 0)? d.nick + "的空间" : "我的空间";
	$("nickname_txt").value = d.nick;
	var s = (d.sex == "男")? "1" : "2";
	setRadioGroupValue("sex", s);
	//开始设置生日
	var b = trim(d.birthday).toString().split("-");
	var date = new Date();
	date.setFullYear(parseInt(b[0], 10)? parseInt(b[0], 10) : 1980);
	date.setDate(parseInt(b[2], 10)? parseInt(b[2], 10) : 1);
	date.setMonth((parseInt(b[1], 10) - 1 >= 0)? parseInt(b[1], 10) - 1 : 0);
	regCalendar.setDate(date);
	$("birthday_txt").value = regCalendar.outPut(date);
	//修正并且设置城市
	d.province = d.province.replace("省", "");
	d.city = d.city.replace("市", "");
	live_slt.setLocation(d.country, d.province, d.city);
	//setSelectValue($("province_slt"), d.province);
	//initCitySelect(d.province, $("city_slt"), d.city);
}

/**
 * 收集注册需要的数据
 * @return {Object} 返回是收集好后的数据
 */
function gatherInfo(){

	var rValue = parseInt(getRadioGroupValue("qzone_style"), 10) - 1;
	var d = {
		"uin": checkLogin(),
		"verifycode": $("verify_txt").value,
		"sex": getRadioGroupValue("sex"),
		"birthday": $("birthday_txt").value,
		"showqq" : "1",
		"isfullage": "0",
		//"provincecode": live_slt.getStateCode(),
		"itemid": STYLE_MAP[rValue].skin,
		//"skin": STYLE_MAP[rValue].skin,
		//"style": STYLE_MAP[rValue].style,
		//"layout": STYLE_MAP[rValue].layout,
		//"mode": STYLE_MAP[rValue].mode,
		//"center": STYLE_MAP[rValue].center,
		"spacemode": 1,
		"outfit": rValue,
		"smartblog": 1,
		"spacename": $("qzonename_txt").value,
		"nickname": $("nickname_txt").value,
		"country": live_slt.getCountryCode(),
		"province": live_slt.getStateCode(),
		"city": live_slt.getCityCode(),
		"desc": "",
		"mark": (isNaN(parseInt(getParameter("mark"),10)))? 0: parseInt(getParameter("mark"),10)
	};
	var ruin = getParameter("fuin");
	var key = getParameter("key");
	var ckey = getParameter("ckey");
	if (String(ruin + key + ckey).length > 10) {
		d.ruin = ruin;
		d.key = key;
		d.ckey = ckey;
		d.invite = 1;
	} else {
		d.invite = 0;
	}

	d.title = "刚刚开通了空间，来转转吧！";
	//为啥这里是3，问产品去
	d.content = defaultSmartBlogTemplete[3].replace(/\$uin/g, checkLogin());
	d.category = "个人日记";
	return d;
}

/**
 * 检查信息是否正确
 * @return 输入是否正确
 */
function checkInfo(no_msg){
	var result = true;
	var msg = "";
	if(parseInt(getRadioGroupValue("qzone_style"), 10) < 0 || parseInt(getRadioGroupValue("qzone_style"), 10) > 4){
		msg = "请选择您的空间风格！";
		result = false;
	}

	if(!$("agree_chk").checked){
		msg = "请确认已勾选QQ空间服务条款。";
		$("agree_chk").parentNode.className = "p_padding p_xy input_now";
		$("agree_tips").innerHTML = msg;
		result = false;
	} else {
		$("agree_tips").innerHTML = "";
		$("agree_chk").parentNode.className = "p_padding";
	}

	if($("verify_txt").value.length != 4){
		if($("verify_txt").value.length > 0){
			msg = "验证码不够4位，请重新填写。";
		} else {
			msg = "您还没有填写验证码。";
		}
		result = false
		$("verify_tips").innerHTML = msg;
		$("verify_txt").parentNode.className = "input_now";
	} else {
		$("verify_tips").innerHTML = "";
		$("verify_txt").parentNode.className = "";
	}
	if(live_slt.getCityCode() == "0" && live_slt.getStateCode() == "0" && live_slt.getCountryCode() == "0"){
		result = false;
		msg = "请选择所在地。";
		$("address_tips").innerHTML = msg;
		$("address_p").className = "input_now";
	} else {
		$("address_tips").innerHTML = "";
		$("address_p").className = "";
	}
	if($("birthday_txt").value == ""){
		result = false;
		msg = "请选择您的生日。";
		setRemindStyle($("birthday_tips"), msg);
	}
	if(trim($("nickname_txt").value) == ""){
		result = false;
		msg = "请填写您的昵称。";
		setRemindStyle($("nickname_tips"), msg);
	} else if(isTT&&($("nickname_txt").value.indexOf('&')!=-1)){
		result = false;
		msg='"&"等特殊字符可能导致开通不成功。'
		setRemindStyle($("nickname_tips"), msg);
	} else {
		removeRemindStyle($("nickname_tips"));
	}
	if(trim($("qzonename_txt").value) == ""){
		result = false;
		msg = "请填写您的空间名称。";
		setRemindStyle($("qzonename_tips"), msg);
	} else if(isTT&&($("qzonename_txt").value.indexOf('&')!=-1)){
		result = false;
		msg='"&"等特殊字符可能导致开通不成功。'
		setRemindStyle($("qzonename_tips"), msg);
	} else {
		removeRemindStyle($("qzonename_tips"), msg);
	}
	if(msg != "" && !no_msg){
		showMsg(msg);
	}
	return {"re": result, "msg": msg};
}

/**
 * 设置提醒用户输入错误
 * @param {Text} ele 文本输入框
 * @param {String} msg 需要提示的信息
 */
function setRemindStyle(ele, msg){
	ele.parentNode.className = "input_now";
	ele.innerHTML = msg;
}

function removeRemindStyle(ele){
	ele.parentNode.className = "";
	ele.innerHTML = "";
}

var defaultSmartBlogTemplete = [null,
	'　　QQ空间很有趣，而且我渐渐发现周围越来越多的朋友都开通了QQ空间。我今天开通了自己的空间，这样，以后看看朋友们都在做什么，也能让朋友们知道自己在做什么，很方便。经常来我的空间转转吧！\n\n　　最近新电影不少，你有没有什么电影想推荐给我？给我留言吧。除了电影，生活也是很丰富的。如果我有一个假期，我希望找朋友们聚聚，能好好的旅游一次，最好再有时间好好的休息一下。你打算怎么度过你的假期的？告诉我吧！\n\n　　现在我的空间还有一点冷清，给我[url=http://user.qzone.qq.com/$uin/msgboard_new]留言[/url]吧，支持我一下！最重要的，不要忘了[url=http://user.qzone.qq.com/$uin/interact_new]加我好友[/url]，这样下次你来的时候就方便多了。\n\n另外，如果你在其他博客上有日记或者照片，可以用QQ空间搬家工具([url]http://n.qzone.qq.com/move/move_login.htm[/url])把它们备份到QQ空间。让我们一起享受QQ空间的网络生活新体验！:)',
	'　　QQ空间很有意思，而且，我渐渐发现周围越来越多的朋友都开通了QQ空间，于是我今天也就开通了自己的空间。这样，以后看看朋友们都在做什么，也能让朋友们知道自己在做什么，很方便。经常来我的空间转转吧，我这里会有很多好照片！\n\n　　最近新电影不少，有没有什么电影想推荐给我？给我留言吧如果我有一个假期，我希望找朋友们聚聚，能好好的旅游一次，最好再有时间好好的休息一下，哈哈。你打算怎么度过你的假期的？\n\n　　现在我的空间还有一点冷清，给我[url=http://user.qzone.qq.com/$uin/msgboard_new]留言[/url]吧！最重要的，不要忘了[url=http://user.qzone.qq.com/$uin/interact_new]加我好友[/url]，这样下次你来的时候就方便多了。\n\n另外，如果你在其他博客上有日记或者照片，可以用QQ空间搬家工具([url]http://n.qzone.qq.com/move/move_login.htm[/url])把它们备份到QQ空间。让我们一起享受QQ空间的网络生活新体验！:)',
	'我今天终于有了自己的QQ空间，欢迎新老朋友为我的空间捧场！\n\n虽然我认识的GGMM都有QQ空间，不过我相信我的空间一定是独一无二的！\n\n我喜欢交朋友，如果你想和我多聊一些，给我留言，发小纸条或者直接加我好友吧！\n\n另外，如果你在其他博客上有日记或者照片，可以用QQ空间搬家工具([url]http://n.qzone.qq.com/move/move_login.htm[/url])把它们备份到QQ空间。让我们一起享受QQ空间的网络生活新体验！:)',
	'一直想给自己的心情和文字找个家\n一直想通过一种方式，让朋友们随时随地找到我，看到我\n\n今天我开通了自己的空间\n这样，以后随时随地能看看朋友们都在做什么\n也能让朋友们知道自己在做什么，很方便\n\n我要把这里作为我网上的家\n有空的话，经常来我的空间转转吧\n\n现在，我的空间还有一点冷清，给我[url=http://user.qzone.qq.com/$uin/msgboard_new]留言[/url]吧，支持我一下！\n最重要的，不要忘了[url=http://user.qzone.qq.com/$uin/interact_new]加我好友[/url]，这样下次你来看我的时候就方便多了\n\n另外，如果你在其他博客上有日记或者照片，可以用QQ空间搬家工具([url]http://n.qzone.qq.com/move/move_login.htm[/url])把它们备份到QQ空间。让我们一起享受QQ空间的网络生活新体验！:)'
];

function pgvGetUserInfo(){
	var m = document.cookie.match(/(^|;|\s)*pvid=([^;]*)(;|$)/);
	var pvid;
	if(m){
		pvid = m[2];
	}else{
		pvid = (Math.round(Math.random() * 2147483647) * (new Date().getUTCMilliseconds())) % 10000000000;
		document.cookie = "pvid=" + pvid + "; path=/; domain=qq.com; expires=Sun, 18 Jan 2038 00:00:00 GMT;";
	}
	return "&pvid=" + pvid;
}

function sendPV(){
	var r = document.referrer.replace(/^http:\/\/(\d{5,})\.qzone\.qq\.com/,'http://user.qzone.qq.com/$1');
	var rdm = getRef(r),rurl;
	rurl = rdm == 'other' ? '-' : r.split('?')[0].split('#')[0].replace(/^http:\/\/[^\/]+/,'');
	rdm = (rdm == 'other' ? '-' : (rdm+ '.from.qzone.qq.com'));
	var url = ["http://pingfore.qq.com/pingd?",
		"url=/qzone/reg/reg1.html&tt=-&scr=-&scl=-&lang=-&cc=-&pf=-&ct=-&java=1&tz=-8&vs=3.3",
		pgvGetUserInfo(),
		"&dm=new.qzone.qq.com",
		"&rdm=" , rdm,
		"&rurl=" , rurl,
		"&youyee=" , Math.random()
	].join('');
	new Image().src = url;
}

function getRef(strRef){
	var o = {
		'inew'		: 'http://imgcache.qq.com/qzone/v5/izone/index.html',
		'toolbar'	: 'http://user.qzone.qq.com/',
		'blog'		: 'http://b.qzone.qq.com/cgi-bin/blognew/blog_output_data',
		'msg'		: 'http://imgcache.qq.com/qzone/blog/tmygb_static.htm',
		'photo'		: 'http://imgcache.qq.com/qzone/client/photo/pages/qzone_v4/photo_view.htm',
		'imtab'		: 'http://update.qzone.qq.com/cgi-bin/user/cgi_updatelist_tab',
		'qqreg'		: 'http://newreg.qq.com/step3.shtml'
	};
	for(var p in o){
		if(strRef.indexOf(o[p]) >= 0 ){
			return p;
		}
	}
	return 'other';
}
//此全局变量用于检测是否flash请求器可用
var haveFlashLoader = false;

/**
 * 生成一个flash请求器
 */
function generateFlashLoader(){
	var _d = document.createElement("div");
	_d.id = "_flash_loader";
	_d.style.width = "1px";
	_d.style.height = "1px";

	var _flashHtml = QZONE.media.getFlashHtml(
	{
		"src": "http://imgcache.qq.com/qzone/reg/CDRequestor.swf",
		"width": "1",
		"height": "1",
		"allowScriptAccesss": "always",
		"id": "_flashLoader",
		"name": "_flashLoader",
		"wmode": "opaque",
		"flashvars": "initHandler=handleFlashInit"
	});

	document.body.appendChild(_d);
	_d.innerHTML = _flashHtml;
}

/**
 * 当flash初始化后会自动调用此函数
 */
function handleFlashInit(){
	var _l = $("_flashLoader");
	var _r = 0
	try{
		_r = _l.test();
	} catch (error){
		_r = 0;
	}

	if(_r){
		haveFlashLoader = true;
	} else {
		haveFlashLoader = false;
	}
}

/**
 * 通过flash来发送跨域请求
 */
function submitDataByFlash(){
	if (!HAVE_SUBMIT && checkInfo(true).re) {
		var _d = gatherInfo();
		var _loader = $("_flashLoader");
		if (!!_loader) {
			HAVE_SUBMIT = true;
			_loader.load(REGEDIT_URL, _d, "post", "handleSubmitComplete", "handleSubmitError", "gb2312", "callback");
		}
	}
	return false;
}

/*  |xGv00|575b56e7f2365b6ddf17235f0d86859f */