var firstOpen = true;

function flashPlay() {
	if (!checkLogin()) {
		return;
	}else{
		play();
	}
}

function showInviteLayer() {
	if (!checkLogin()) {
		return;
	}
	beforeShowLayer();
	jQuery("div[name='inviteLayer']").show();
}

function hideLayers() {
	jQuery("div[class^='a_layer']").hide();
}

function copyToClipBoard() {
	copy_clip(document.getElementById("inviteMsg_2").value);
}

function copy_clip(meintext) {
	if (window.clipboardData) {
		window.clipboardData.setData("Text", meintext);
		alert("Following content has been copied:\n" + meintext);
	} else {
		window.prompt("Press Ctrl+C to copy the content please.", meintext
				.replace("\n", " "));
	}
}

function invite() {
	var gp = jQuery("#groupPassport").val();
	if (gp != "" && gp.length > 0) {
		jQuery.post("invite.do", {
			"groupPassport" : gp,
			"content" : jQuery("#inviteMsg_1").val(),
			"mp" : jQuery("#mp").val()
		}, function(data) {
			if (data) {
				alert(data == "1" ? "Succeed!" : "Failed, please try later.");
			}
		});
	} else {
		alert("Please select groups which you want to invite.");
	}
}

function beforeShowLayer() {
	hideLayers();
}

function showBuyLayer() {
	if (!checkLogin()) {
		return;
	}
	beforeShowLayer();
	initBuyerEvent();
	jQuery("#radiobutton7").attr("checked", true).click();
	jQuery("div[name='buyLayer']").show();
}

function radioClick(val) {
	jQuery("tr[name^='item'],tr[id^='item']").hide();
	jQuery("tr[name='" + val + "'],tr[id='" + val + "']").show();
}

function login() {
	jQuery("input[type=text]").attr("name", "mp").focus();
	_commJs.showLayerDis(jQuery("input[type=text]").attr("name", "mp")[0],
			'Please input your WindowLive account and password')
}
function checkLogin() {
	if (jQuery("#mp").val() == "") {
		//alert("Please login above. No registration, use your Messenger account to sign in. ");
		jQuery("input[type=text]").attr("name", "mp").focus();
		_commJs.showLayerDis(jQuery("#playA"),
				'No registration, Please use your Messenger account to sign in.');
		return false;
	}
	return true;
}

function initBuyerEvent() {
	var btn;
	for (var i = 7; i <= 8; i++) {
		btn = jQuery("#payBtn" + i);
		if (btn.attr("name") == "1") {
			//btn.bind("click", {
			//	id : i
			//}, rdCharge).attr("target", "_blank");
		} else {
			btn.bind("click", pay);
		}
	}
}

function rdCharge(event) {
	if (firstOpen) {
		alert("Charge page will open in a new window. You may have to login again with your messenger account.");
		firstOpen = false;
	}
	var goodId = jQuery("input[name='radiobutton']:checked").val().replace(
			"item", "");
	if(goodId==7){
		window.open("http://pay.groups.im/?amount=" + 1);
	}else{
		window.open("http://pay.groups.im/?amount=" + 8);
	}
	//var content = "Update";
	var id = event.data.id;
	jQuery("tr[name='item" + id + "'] p").empty()
			.append("Click refresh Balance button to refresh your balance.");
	//jQuery("#payBtn" + id).html(content).unbind("click").bind("click",refreshBalance);
	//jQuery("a[name='failedform']").show();
	return false;
}

function pay() {
	var goodId = jQuery("input[name='radiobutton']:checked").val().replace(
			"item", "");
	var toMp = jQuery("#mp").val();
	jQuery.getJSON("pay.do", {
		"goodId" : goodId,
		"toMp" : toMp,
		"asyn" : 1
	}, function(data) {
		if (data != null) {
			if (data == "-2") {
				checkLogin();
			} else if (data == "0" || data == "-1") {
				refreshBalance();
				alert("Balance is not enough!");
			} else if (data == "-3") {
				alert("Please enter game first!");
			} else {
				updateAccountStatus(data, true);
				alert("Succeed! Please reload the page.");
			}
		}
	});
	return false;
}

function refreshBalance() {
	jQuery.getJSON("balance.do", {
		"asyn" : 1
	}, function(data) {
		if (data) {
			if (data == "-2") {
				checkLogin();
			} else {
				updateAccountStatus(data);
			}
		}
	});
	//jQuery("a[name='failedform']").hide();
}

function updateAccountStatus(data, isHide) {
	setTimeout(function() {
		if (isHide) {
			hideLayers();
		}
		var pd = data.pd;
		jQuery("#bl").html("USD " + formatCurrency(data.bl));
		var gid = 7;
		var btn;
		for (var i = 0; i < pd.length; i++) {
			gid += i;
			btn = jQuery("#payBtn" + gid);
			btn.unbind("click");
			if (pd[i] == 0) {
				jQuery("tr[name='item" + gid + "'] p").empty();
				btn.html("<font color='#00ccff'>Buy it!</font>").bind("click", pay);
			} else {
				jQuery("tr[name='item" + gid + "'] p")
						.empty();
						//.append("Balance not enough,charge USD <span name='item@i'>@p</span>"
						//		.replace("@i", gid).replace("@p",
						//				formatCurrency(pd[i])));
				btn.html("<font color='#ff0000'>Balance not enough ,</font><br><font color='#ff0000'>Please charge!</font>");
				//.bind("click", {
				//	id : gid
				//}, rdCharge);
			}
		}
	}, 0);
}

function formatCurrency(curr) {
	var rs = curr || "0.0";
	if (curr) {
		if (curr.toString().indexOf(".") == -1) {
			return rs + ".0";
		}
	}
	return rs;
}

function play() {
	//if (!checkLogin()) {
	//	return;
	//}
	document.getElementById("playForm").submit();
}

var strJSVoid = "javascript:void(0)";

function transferMain() {
	if (!checkLogin()) {
		return;
	}
	document.getElementById("playForm").action = "transferMain.do";
	document.getElementById("playForm").submit();
}

function toHome() {
	document.getElementById("playForm").action = "home.do";
	document.getElementById("playForm").submit();
}

function goTransfer(owngold) {
	var fAccount1 = trim(jQuery("#fAccount1").val());
	var fAccount2 = trim(jQuery("#fAccount2").val());
	var transferAmount = jQuery("#transferAmount").val();
	if (valEmail(fAccount1) == false || valEmail(fAccount2) == false) {
		alert('you must provide an e-mail account of your friend.');
		return;
	}
	if (fAccount1 != fAccount2) {
		alert('‘Friend account’ and ‘Confirmation’ must match.');
		return;
	}
	if (valAmount(transferAmount) == false) {
		alert('Your transaction is not within the range 50000 -1000000 gold coins.');
		return;
	} else if (transferAmount > 1000000 || transferAmount < 50000) {
		alert('Your transaction is not within the range 50000 -1000000 gold coins.');
		return;
	} else if (parseInt(transferAmount) > parseInt(owngold)) {
		alert('You have gold coins not enough.');
		return;
	}
	var datas = {
		"friendAccount" : fAccount1,
		"fromName" : jQuery("#fromName").val(),
		"transferAmount" : transferAmount
	};
	transferAjax(datas, owngold - transferAmount);
}

function trim(str) {
	return str.replace(/(^\s*)|(\s*$)/g, "");
}

function transferAjax(datas, nowBalance) {
	jQuery.ajax({
		type : "post",
		url : "home!transfer.do",
		data : datas,
		cache : false,
		success : function(msg) {
			if (msg.charAt(0) == '1') {
				msg = msg.substring(1);
				jQuery("#balanceSpan").html("Balance:" + nowBalance);
			}
			jQuery("#transferMsg").html(msg);
			jQuery("#apDiv7").show();
			jQuery("#apDiv6").hide();
		}
	});
}

function valEmail(emailString) {
	var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
	if (!myreg.test(emailString)) {
		return false;
	}
	return true;
}

function valAmount(transferAmount) {
	var myreg = /^[-]{0,1}[0-9]{1,}$/;
	if (!myreg.test(transferAmount)) {
		return false;
	}
	return true;
}

function gp_players_cb(page) {
	var i;
	var d = page.data;
	var curPageNum = page.pn;
	var totalPageCount = page.totalPageCount
	for (i = 0; i < top50_pageSize; i++) {
		if (i < d.length) {
			jQuery("#gpplayer_rank_" + i).html((curPageNum - 1)
					* top50_pageSize + i + 1);
			jQuery("#gpplayer_name_" + i).html(d[i]["name"]);
			jQuery("#gpplayer_gold_" + i).html(d[i]["gold"]);
		} else {
			jQuery("#gpplayer_rank_" + i).html('');
			jQuery("#gpplayer_name_" + i).html('');
			jQuery("#gpplayer_gold_" + i).html('');
		}
	}

	var preHref_top50 = jQuery("#preHref");
	var nextHref_top50 = jQuery("#nextHref");
	if (curPageNum <= 1) {
		preHref_top50.attr("href", strJSVoid).addClass("disabled");
	} else {
		preHref_top50.attr("href",
				"javascript:gpMemberPageRequest(" + (curPageNum - 1) + ");")
				.removeClass("disabled");
	}
	if (curPageNum >= totalPageCount) {
		nextHref_top50.attr("href", strJSVoid).addClass("disabled");
	} else {
		nextHref_top50.attr("href",
				"javascript:gpMemberPageRequest(" + (curPageNum + 1) + ");")
				.removeClass("disabled");
	}
}

function top50_players_cb(page) {
	var i;
	var d = page.data;
	var curPageNum = page.pn;
	var totalPageCount = page.totalPageCount
	for (i = 0; i < top50_pageSize; i++) {
		if (i < d.length) {
			jQuery("#top50_rank_" + i).html((curPageNum - 1) * top50_pageSize
					+ i + 1);
			jQuery("#top50_name_" + i).html(d[i]["name"]);
			jQuery("#top50_gold_" + i).html(d[i]["gold"]);
			if (d[i]["group"]) {
				jQuery("#top50_group_" + i)
						.html('<a target="_blank" href="http://groups.im/gid-'
								+ d[i]["group"] + '">' + d[i]["groupName"]
								+ '</a>');
			} else {
				jQuery("#top50_group_" + i).html('--');
			}
		} else {
			jQuery("#top50_rank_" + i).html("");
			jQuery("#top50_name_" + i).html("");
			jQuery("#top50_gold_" + i).html("");
			jQuery("#top50_group_" + i).html("");
		}
	}
	var preHref_top50 = jQuery("#preHref_top50");
	var nextHref_top50 = jQuery("#nextHref_top50");
	if (curPageNum <= 1) {
		preHref_top50.attr("href", strJSVoid).addClass("disabled");
	} else {
		preHref_top50.attr("href",
				"javascript:top50PageRequest(" + (curPageNum - 1) + ");")
				.removeClass("disabled");
	}
	if (curPageNum >= totalPageCount) {
		nextHref_top50.attr("href", strJSVoid).addClass("disabled");
	} else {
		nextHref_top50.attr("href",
				"javascript:top50PageRequest(" + (curPageNum + 1) + ");")
				.removeClass("disabled");
	}
}

function top50PageRequest(curPageNum) {
	var totalPgSize = jQuery("#top50_totalPgSize").val();
	var d = {
		"curPageNum" : curPageNum
	};
	jQuery.ajax({
		type : "post",
		url : "home!top50UserRank.do",
		data : d,
		cache : false,
		success : function(msg) {
			var page = eval('(' + msg + ')');
			top50_players_cb(page);
		}
	});
}

function gpMemberPageRequest(curPageNum) {
	jQuery.ajax({
		type : "post",
		url : "home!groupMemberRank.do",
		data : {
			"curPageNum" : curPageNum,
			"gid" : gid
		},
		cache : false,
		success : function(msg) {
			var page = eval('(' + msg + ')');
			gp_players_cb(page);
		}
	});
}

function addoffical() {
	copy_clip('未定');
}
jQuery(function($) {
	$('a').focus(function() {
		this.blur();
	});
});
