// JavaScript Document
var tab = ["tab1","tab2","tab3","tab4","tab5","tab6","tab7","tab8"];
var mySpace = false;
Event.observe(window,'load',function(){
	var loadTab = function(){
		
		$("tabLay").style.display = "block";
		$("warningLay").style.display = "none";
		
		var tabName = window.location.hash;
		tabName = tabName.replace("#","");
		
		if(tabName == "" ){
			changeTab("tab1");
		}else{
			changeTab(tabName);
		}
	}

	var note = function(text){
		$("tabLay").style.display = "none";
		$("warningLay").style.display = "block";
		
		
		new Insertion.Bottom($("warningLay"),text);
	}

	//个人主页的权限控制
	mySpace = isMySpace();
	
	//console.log("isMyfriend = " + isMyfriend + " ,isMySpace = " + mySpace + ",!isMySpace && isMyfriend = " + (!mySpace && isMyfriend));
	//console.log("personalPagePrivacy=" + personalPagePrivacy);
	if(!mySpace && !isMyfriend){
		if(personalPagePrivacy == "仅好友" ){
			note("对方隐私设置，只对好友公开，你没有权限查看。");
		}else if(personalPagePrivacy == "任何人"){
			loadTab();
		}else if(personalPagePrivacy == "隐藏"){
			note("对方隐私设置，完全隐私，你没有权限查看。");
		}else{
			loadTab();
		}
	}else if(!mySpace && isMyfriend){
		if(personalPagePrivacy == "隐藏"){
			note("对方隐私设置，完全隐私，你没有权限查看。");
		}else{
			loadTab();
		}
	}else{
		loadTab();
	}
	
});

/**
 * 改变tab
 */
function changeTab(tabId,currentUserId){
	//var mySpace = isMySpace();
	var index = tab.length;
	
	if(!mySpace)
	{
		index = index - 1;
	}
	
	for(var i = 0 ; i < tab.length ; i++)
	{
		if(!$(tab[i])) continue;
		if(tab[i] == tabId)
		{
			$(tabId).className = "menu_tab_default menu_tab_focus";  	
		}else
		{
			$(tab[i]).className = "menu_tab_default";
		}
	}
	
	if(tabId != tab[0]){
		$("personalTab").innerHTML = "loading... ";
		
		if(tabId == tab[1]){
			document.getElementById("useInfoHidden").style.display = "block";
			getVoice(1);
		}else if(tabId == tab[2]){
			document.getElementById("useInfoHidden").style.display = "block";
			getMyTrace(1);
		}else if(tabId == tab[3]){
			document.getElementById("useInfoHidden").style.display = "block";		
			new Message().showMsg({msgType:1});
		}else if(tabId == tab[4]){
			document.getElementById("useInfoHidden").style.display = "block";		
			getAllFriends();
		}else if(tabId == "myFans"){
			document.getElementById("useInfoHidden").style.display = "block";
			document.getElementById(tab[4]).className = "menu_tab_default menu_tab_focus";
			getFans();
		}else if(tabId == tab[5]){
			document.getElementById("useInfoHidden").style.display = "block";
			new InternalMail().inbox();
		}else if(tabId == "myFriendTrace"){
			document.getElementById("useInfoHidden").style.display = "block";
			document.getElementById(tab[2]).className = "menu_tab_default menu_tab_focus";
			getFriendTrace(1);
		}else if(tabId == "myTrace"){
			document.getElementById("useInfoHidden").style.display = "block";
			document.getElementById(tab[2]).className = "menu_tab_default menu_tab_focus";
			getMyTrace(1);
		}else if(tabId == tab[6]){
			document.getElementById("useInfoHidden").style.display = "none";
			getPurse();
		}else if(tabId == tab[7]){
			document.getElementById("useInfoHidden").style.display = "none";
			getCardActive();
		}else{
			document.getElementById("useInfoHidden").style.display = "block";
			getAllPanel();
		}
		
	}else{
		document.getElementById("useInfoHidden").style.display = "block";
		getAllPanel();
	}
}

/**
 * 显示个人主页的tab
 */
function getAllPanel(){
	// part of defined
	var msgCallback = function(){
		url = constants.url() + "/user/showMsg.action";
		params = "currentUserId=" + currentUserId;
		personalAsynRequest(url,"lVoicePanel",params,false,true,Insertion.After);
	}
	var voiceCallback = function(){
		url = constants.url() + "/user/getVoice.action";
		params = "currentUserId=" + currentUserId + "&limit=8";
		personalAsynRequest(url,"highestscore",params,msgCallback,true,Insertion.After);
	}
	
	var learningCallback = function(){
		var url = constants.url() + "/user/getLearningProgress.action";
		params = "currentUserId=" + currentUserId;
		personalAsynRequest(url,"lFriendTracePanel",params,highScoreCallback,true,Insertion.After);
	}
	
	var highScoreCallback = function(){
		url = constants.url() + "/highestscore/highScore.action";
		params = "currentUserId=" + currentUserId;
		
		var containerId = "lFriendTracePanel";
		if(!mySpace){
			containerId = "lLearningProgressDetail";
		}
		
		personalAsynRequest(url,containerId,params,voiceCallback,true,Insertion.After);
	}
	
	var choiceCallback = function(){
		if(mySpace){
			highScoreCallback();
		}else{
			learningCallback();
		}
	}
	
	//part of beginning
	var containerId = "lTracePanel";
	
	var url = constants.url() + "/user/getFriendTrace.action";
	var params = "currentUserId=" + currentUserId;
	
	if(!mySpace){
		//1.
		getMyTrace('',10);
		//2.
		personalAsynRequest(url,containerId,params,choiceCallback,true,Insertion.After);
	}else{
		containerId = "personalTab";
		gCommonAsynRequest(url,containerId,params,choiceCallback);
	}
	
}

function getFriendTrace(currentPage,limit){
	var url = constants.url() + "/user/getFriendTrace.action?limit=" + (limit || 40);
	getTrace(url,currentPage,"getFriendTrace");
}
function getMyTrace(currentPage,limit){
	var url = constants.url() + "/user/getTrace.action?limit=" + (limit || 40);
	getTrace(url,currentPage,"getMyTrace");
	
}

/**
 * 行踪和声音页面的回调方法
 */
function traceAndVoiceCallback(containerId,currentPage,methodName,variableName){
	
	var paginate = "<div id=\"paginate_container\" class=\"fenye\" style=\"display:none;\">";
	paginate += "<a id=\"paginate_first_page\" href=\"#\">&lt;&lt;</a>";
	paginate += "<a id=\"paginate_prepage\" href=\"#\">&lt;</a>";
	paginate += "<span id=\"paginate_numbers\"></span>";
	paginate += "<a id=\"paginate_nextpage\" href=\"#\">&gt;</a>";
	paginate += "<a id=\"paginate_last_page\" href=\"#\">&gt;&gt;</a>";
	paginate += "</div>";
	
	var secondTabTemplate = "<div class=\"li_menu\">"
	secondTabTemplate += "<span>MYDOING</span>"
	secondTabTemplate += "<span>MYFRIENDDOING</span>"
	secondTabTemplate += "</div>";
	var link = "<a href=\"#TABNAME\" onClick=\"changeTab('TABNAME')\">TEXT</a>";
	
	var secondTab = "";
	//var mySpace = isMySpace();
	var myDoing = "";
	var myFriendDoing = "";
	if(methodName == 'getFriendTrace'){
		myDoing = link.replace(/TABNAME/g,"myTrace");
		if(mySpace){
			myDoing = myDoing.replace(/TEXT/g,"我做了什么");
			myFriendDoing = "我的朋友做了什么";
		}else{
			myDoing = myDoing.replace(/TEXT/g,username + "&nbsp;做了什么");
			myFriendDoing = username + "&nbsp;的朋友做了什么";
		}
		
		//console.log("1." + myDoing);
	}else if(methodName == 'getMyTrace') {
		myFriendDoing = link.replace(/TABNAME/g,"myFriendTrace");
		if(mySpace){
			myDoing = "我做了什么";
			myFriendDoing = myFriendDoing.replace(/TEXT/g,"我的朋友做了什么");
		}else{
			myDoing = username + "&nbsp;做了什么";
			myFriendDoing = myFriendDoing.replace(/TEXT/g,username + "&nbsp;的朋友做了什么");
		}
		//console.log("2." + myFriendDoing);
	}
	if(methodName.match(/Trace/g)){
		secondTab = secondTabTemplate.replace(/MYDOING/g,myDoing);
		secondTab = secondTab.replace(/MYFRIENDDOING/g,myFriendDoing);
	}
	
	//console.log(methodName);
	if(currentPage){
		if(variableName == "trace"){
			new Insertion.Top(containerId,secondTab);
		}
		new Insertion.Bottom(containerId,paginate);
		initialVoiceAndTracePaginate(methodName,variableName);
	}
}

/**
 * 显示行踪的tab
 */
function getTrace(url,currentPage,methodName){
	var containerId = "personalTab";
	
	var params = {currentUserId:currentUserId,traceCurrentPage : currentPage};
	gCommonAsynRequest(url,containerId,params,function(response){
		traceAndVoiceCallback(containerId,currentPage,methodName,"trace");
	},false);
}
/**
 * 显示所有好友
 */
function getAllFriends(){
	var containerId = "personalTab";
	if(typeof arguments[1] != "undefined"){
		containerId = arguments[1]; 
	}
	var url = getAbsolute() + getServName() + "/user/getAllFriend.action";
	var params = "currentUserId="+currentUserId+"&type=0&pageNumber=1";
	gCommonAsynRequest(url,containerId,params, function(){af_init();});
}
/**
 * 显示谁在关注此人
 */
function getFans(){
	var containerId = "personalTab";
	var url = getAbsolute() + getServName() + "/user/getAllFriend.action?currentUserId="+currentUserId + "&type="+2+"&pageNumber=1&timestamp="+(new Date()).getTime();
	g_asynPageRequest(url, containerId, true, function(){af_init();});
	currentTabIndex = 2;
}

/**
 * 显示声音tab
 */
function getVoice(currentPage){
	var containerId = "personalTab";
	if(typeof arguments[1] != "undefined"){
		containerId = arguments[1]; 
	}
	var url = getAbsolute() + getServName() + "/user/getVoice.action";
	var params = {currentUserId : currentUserId,voiceCurrentPage : currentPage};
	gCommonAsynRequest(url,containerId,params,function(){
		traceAndVoiceCallback(containerId,currentPage,"getVoice","voice");
	});
}

/**
 * 分页,attachArray:第一个元素是callback方法
 */
function initialVoiceAndTracePaginate(methodName,variableName){
	var totalPage = $(variableName + "TotalPage").value;
	var currentPage = $(variableName + "CurrentPage").value;
	
	var paginate = new VoxPaginate((totalPage || 1) , (currentPage || 1), 10,[methodName]);
	//console.log((totalPage || 1));
	paginate.addPageChangeCallback(function(totalPageCount, currentPageNumber, attachArray){
		gotoVoiceAndTracePage(currentPageNumber,attachArray);
	});
}
function gotoVoiceAndTracePage(currentPage,array){
	window[array[0]](currentPage);
}

/**
 * 是否是自己的空间
 */
function isMySpace(){
	var url = constants.url() + "/user/isMySpace.action";
	var params = "currentUserId=" + currentUserId;
	var isMine = false;
	gCommonAsynRequest(url,'',params,function(request,containerId){
		var status = request.responseText;
		if(status == 'success'){
			isMine = true;
		}
	},false);
	return isMine;
}


/**
 * 格式化时间
 */
function formatDateToString(givenDate){
	//alert(givenDate);
	var dateTime = givenDate.toString().split(" ");
	var date = dateTime[0].split("-");
	var time = dateTime[1].split(":");
	
	var year = parseInt(date[0]);
	var month = parseInt(date[1]);
	var day = parseInt(date[2]);
	var hour = parseInt(time[0]);
	var minute = parseInt(time[1]);
	
	var now = new Date();
	//alert(now.getDate() + "," + day);
	if(year == now.getFullYear() && 
		month == (now.getMonth() + 1) && 
		(now.getDate() - day) < 7){

		var dd = now.getDate() - day;
		var hh = now.getHours() - hour;
		var mm = now.getMinutes() - minute;
		//alert(dd + "," + hh + "," + mm);
		//1.>1 day 几天前
		if(dd >= 1){
			document.write(dd + " 天前");return ;
		}
		//2.>1 hour 几小时前
		else if(hh >= 1){
			document.write( hh + " 小时前");return ;
		}
		//3.>1 minute 几分钟前
		if(mm >= 1){
			document.write( mm + " 分钟前");return ;
		}
	}
	document.write(givenDate);return ;
}


function register(){}


/**
 * 能接收五个参数的异步请求
 * 
 * 参数				参数名			必要性
 * arguments[0] : url				required
 * arguments[1] : containerId		required
 * arguments[2] : params			可选
 * arguments[3] : callBack			可选(此项和containerId必存其一)
 * arguments[4] : asynchronous		可选
 * arguments[5] : insertion			可选
 */
function personalAsynRequest(){
	if(typeof(arguments[0]) == 'undefined' || typeof(arguments[1]) == 'undefined'){
		return -1;
	}
	
	var url = arguments[0];			// url
	var containerId = arguments[1];	// containerId
	var params = arguments[2];		// params
	var callBack = arguments[3];	// callBack
	var asynchronous = true;		// 是否异步
	var insertion = arguments[5];
	
	if(typeof(arguments[4]) != 'undefined'){
		asynchronous = arguments[4];
	}
	
	new Ajax.Updater(containerId, url, {
		asynchronous : asynchronous,
		parameters :  params,
		onComplete : callBack,
		insertion : insertion
	});
}

//我的钱包
function getPurse(){
	var containerId = "personalTab";
	
	if(typeof arguments[1] != "undefined"){
		containerId = arguments[1]; 
	}
	var url = getAbsolute() + getServName() + "/apps/sale/purse.action";
	gCommonAsynRequest(url,containerId,true,function(){
		var url1 = getAbsolute() + getServName() + "/apps/sale/goodsPacList.action";
		var params = {goPage : 1,
					  requestType : "all"
						};
		gCommonAsynRequest(url1,"goodspaclist",params,function(){
		});
	});
}


//我的卡Active
function getCardActive(){
	var containerId = "personalTab";
	if(typeof arguments[1] != "undefined"){
		containerId = arguments[1]; 
	}
	var url = getAbsolute() + getServName() + "/apps/sale/cardActivate.action";
	gCommonAsynRequest(url,containerId,true,function(){
	});
}