// JavaScript Document



if(typeof com == "undefined")
{
	com = function(){};
}

if(typeof com.ixonos == "undefined")
{
	com.ixonos = function(){};
}
if(typeof com.ixonos.more == "undefined")
{
	com.ixonos.more = function(){};
}
com.ixonos.more.favourite = function(){};

var favouriteMemberId = 0;
//1: my Favourite ; 2: my fans
var favouriteState = 1;
var favouriteCurrentFriendId = 0;
var favouriteCurrentFriendName = 0;
var favouriteScroller;

var favouriteCurrentPageNumberMyFavourite = 1;
var favouriteCurrentPageNumberMyFans = 1;

var favouriteOffsetHeight = 0;
var favouriteScrollHeight = 0;
var favouriteHasTheNextPageMyFavourite = true;
var favouriteHasTheNextPageMyFans = true;

var favouriteIsInit = false;
var favouritePreviousOffset = null;


com.ixonos.more.favourite.onDeviceReady = function()
{	
	//init every variable
	favouriteMemberId = 0;
	//1: my Favourite ; 2: my fans
	favouriteState = 1;
	favouriteCurrentFriendId = 0;
	favouriteCurrentFriendName = 0;
	
	favouriteCurrentPageNumberMyFavourite = 1;
	favouriteCurrentPageNumberMyFans = 1;
	
	favouriteOffsetHeight = 0;
	favouriteScrollHeight = 0;
	favouriteHasTheNextPageMyFavourite = true;
	favouriteHasTheNextPageMyFans = true;
	
	favouriteIsInit = false;
	favouritePreviousOffset = null;
	
	//com.ixonos.fsc.addAjaxSend();
	
	// do your thing!
	favouriteMemberId = window.localStorage.getItem(loginUser.memberId);
	//set the area the content can scroll
	var activeScreen = document.querySelector(".moreFavouriteContent");
	favouriteScroller = (new TouchScroll(activeScreen, {elastic:true}));
	favouriteScroller.setupScroller(true);
	
	favouritePreviousOffset = favouriteScroller._currentOffset;
	
	com.ixonos.more.favourite.initialize();
	
	// points ======================
	com.ixonos.fsc.setPointsNum();
	
	com.ixonos.more.favourite.bindFavouriteTitleItem();	
	com.ixonos.more.favourite.bindPopupButton();			
	com.ixonos.fsc.initBottomBar("");			
	
};
 
com.ixonos.more.favourite.initialize = function()
{
	$(".moreFavouriteMyFavourite").html(more.myFavourite);
	$(".moreFavouriteMyFans").html(more.myFans);
	$(".favouriteBackButton").html(public.backText);

	//delete confirm page
	var html = ''; 
	html += '<div class="popPageContent">';
	html += 	'<div class = "confirmTitle">' + public.confirmTitle +  '</div>';
	html += 	'<div class = "confirmContent">Are you sure you want to remove this favorite?</div>';
	html +=		'<a class="deleteShadowButton"><div class = "popPageOrangeSmallButton moreFavouriteYesButton">' + public.yesText+ '</div></a>';
	html +=		'<a class="deleteShadowButton"><div class = "popPageRedSmallButton moreFavouriteCancelButton">' + public.cancelText+ '</div></a>';
	html +=	'</div>';
	$(".moreFavouriteConfirmPage").append(html);	
	$(".moreFavouriteConfirmPage").hide();
	
	if(window.localStorage.getItem(favourite.currentPage) == "favourite")
	{
		com.ixonos.more.favourite.changeToMyFavourite();		
	}
	else
	{
		com.ixonos.more.favourite.changeToMyFans();
	}



	
};
/**
 * access server data  methods ---------- begin
 */
// get the favourites list
com.ixonos.more.favourite.favouriteList = function(pageNumber)
{
	com.ixonos.fsc.removeLoadPage();
	if(favouriteCurrentPageNumberMyFavourite > pageNumber)
	{
		com.ixonos.fsc.loadPage("favourite",favouriteCurrentPageNumberMyFavourite);
		
	}
	else
	{
		com.ixonos.fsc.loadPage("favourite", 1);
	}
	
	var url = server.serverIp + "rest/friendServer/favouriteSent?memberId=" + favouriteMemberId + "&pageNumber=" + pageNumber;
	//var url = server.serverIp + "rest/friendServer/friends?memberId=" + favouriteMemberId + "&pageNumber=" + pageNumber;
	$.getJSON(url,
			  function(string)
			  {
			  if(typeof string == "undefined")
			  {
				com.ixonos.fsc.serverErrorAlert();
			  }
			  else
			  {
				if(string.status == 1)
				{	
					var currentTotal = string.currentTotal;
					if(currentTotal >= 10)
					{
						favouriteHasTheNextPageMyFavourite= true;
					}
					else
					{
						favouriteHasTheNextPageMyFavourite = false;
						if(currentTotal != 0)
						{
							favouriteCurrentPageNumberMyFavourite = pageNumber;
						}
						else
						{
							if(pageNumber !=1 )
							{
								favouriteOffsetHeight = moreFavouriteContentId.offsetHeight;
								favouriteScrollHeight = moreFavouriteContentId.scrollHeight;

								com.ixonos.more.Favourite.bindListItems();
								favouriteIsInit = false;
								com.ixonos.fsc.removeLoadPage();
								return;
							}
						}
					}
					if(string.currentTotal == 0 && pageNumber == 1)
					{
						//alert("friends list is 0");
						com.ixonos.more.favourite.returnNoItem(more.noFavourite);						
					}
					else
					{																		
						for(var i = 0; i < string.currentTotal; i++)
						{
							var picpath = server.serverIp + string.members[i].picpath;
							var countryImage = com.ixonos.fsc.getCountryIcon( string.members[i].countryPic);

							com.ixonos.more.favourite.initEveryItem(string.members[i].Id,picpath,string.members[i].firstname,string.members[i].location,string.members[i].country,string.members[i].age,string.members[i].gender,string.members[i].isOnline,countryImage);
						}	
						$(".moreFavouriteId").hide();	
						if(pageNumber < favouriteCurrentPageNumberMyFavourite)
						{
							com.ixonos.more.favourite.favouriteList(pageNumber + 1);
						}
						else
						{
							favouriteCurrentPageNumberMyFavourite = pageNumber;
							favouriteOffsetHeight = moreFavouriteContentId.offsetHeight;
							favouriteScrollHeight = moreFavouriteContentId.scrollHeight;
							com.ixonos.more.favourite.bindListItems();
							favouriteIsInit = false;
						}
					}
				}
			  else if(string.status == -100)
			  {
					com.ixonos.fsc.requestHeaderError();
			  }
			  else
			  {
					com.ixonos.fsc.serverErrorAlert();
					//com.ixonos.more.friends.returnNoItem(more.friendsNoFriendsText);	
			  }
			}
			  com.ixonos.fsc.removeLoadPage();
		});	
};


//get fans list
com.ixonos.more.favourite.myFanslist = function(pageNumber)
{	

	if(favouriteCurrentPageNumberMyFans > pageNumber)
	{
		com.ixonos.fsc.loadPage("favourite",favouriteCurrentPageNumberMyFans);		
	}
	else
	{
		com.ixonos.fsc.loadPage("favourite", 1);
	}
	
	var url = server.serverIp + "rest/friendServer/favouriteReceived?memberId=" + favouriteMemberId + "&pageNumber=" + pageNumber;
	//var url = server.serverIp + "rest/friendServer/friends?memberId=" + favouriteMemberId + "&pageNumber=" + pageNumber;
	$.getJSON(url,
			  function(string)
			  {
			  com.ixonos.fsc.initBottomUnreadNums();
  			  if(typeof string == "undefined")
			  {
				com.ixonos.fsc.serverErrorAlert();
			  }
			  else
			  {
			  
				if(string.status == 1)
				{	
					var currentTotal = string.currentTotal;
					if(currentTotal >= 10)
					{
						favouriteHasTheNextPageMyFans = true;
					}
					else
					{
						favouriteHasTheNextPageMyFans = false;
						if(currentTotal != 0)
						{
							favouriteCurrentPageNumberMyFans = pageNumber;
						}
						else
						{
							if(pageNumber !=1 )
							{
								favouriteOffsetHeight = moreFavouriteContentId.offsetHeight;
								favouriteScrollHeight = moreFavouriteContentId.scrollHeight;

								com.ixonos.more.favourite.bindListItems();
								favouriteIsInit = false;
								com.ixonos.fsc.removeLoadPage();

								return;
							}
						}
					}
			  
					if(string.currentTotal == 0 && pageNumber == 1)
					{
						com.ixonos.more.favourite.returnNoItem(more.noFans);						
					}
					else
					{
						for(var i = 0; i < string.currentTotal; i++)
						{
							var picpath = server.serverIp + string.members[i].picpath;
							var countryImage = com.ixonos.fsc.getCountryIcon(string.members[i].countryPic);

							com.ixonos.more.favourite.initEveryItem(string.members[i].Id,picpath,string.members[i].firstname,string.members[i].location,string.members[i].country,string.members[i].age,string.members[i].gender,string.members[i].isOnline,countryImage);
						}
						$(".moreFavouriteId").hide();		   
						if(pageNumber < favouriteCurrentPageNumberMyFans)
						{
							com.ixonos.more.favourite.myFanslist(pageNumber + 1);
						}
						else
						{
							favouriteCurrentPageNumberMyFans = pageNumber;
							favouriteOffsetHeight = moreFavouriteContentId.offsetHeight;
							favouriteScrollHeight = moreFavouriteContentId.scrollHeight;
							com.ixonos.more.favourite.bindListItems();
							favouriteIsInit = false;
						}
			  
					}

				}
			  else if(string.status == -100)
			  {
				com.ixonos.fsc.requestHeaderError();
			  }
			  else
			  {
				com.ixonos.fsc.serverErrorAlert();
			  }
			}
			  com.ixonos.fsc.removeLoadPage();
		});	
};

// be favourite
com.ixonos.more.favourite.beFavourite = function()
{
	var url = server.serverIp + "rest/friendServer/beFavourite?currentMemberId=" + favouriteMemberId + "&toBeFavMemberId=" + favouriteCurrentFriendId;
	com.ixonos.fsc.loadPage("favourite", 1);
	$.getJSON(url,
			  function(string)
			  {
			  if(typeof string == "undefined")
				{
					com.ixonos.fsc.serverErrorAlert();
				}
				else
				{
					if(string.status == 1)
					{
						com.ixonos.fsc.alert(more.beFavouriteSuccess1 + favouriteCurrentFriendName + more.beFavouriteSuccess2,function(){},public.confirmationText);
					}
					else if(string.status == 3)
					{
						com.ixonos.fsc.alert(more.beFavouriteException3,function(){},public.confirmationText);
					}
					else if(string.status == -100)
					{
						com.ixonos.fsc.requestHeaderError();
					}
					else
					{
						com.ixonos.fsc.serverErrorAlert();
					}
				}

				com.ixonos.fsc.removeLoadPage();

			  });
			  
}

com.ixonos.more.favourite.deleteFavourite = function()
{
	var url = server.serverIp + "rest/friendServer/deleteFavourite?currentMemberId=" + favouriteMemberId + "&toDelMemberId=" + favouriteCurrentFriendId;
	com.ixonos.fsc.loadPage("favourite", 1);
	$.getJSON(url,
			  function(string)
			  {
			  //alert(string.status);
				if(typeof string == "undefined")
				{
					com.ixonos.fsc.serverErrorAlert();
				}
				else
				{
					if(string.status == 1)
					{
						com.ixonos.more.favourite.changeToMyFavourite();
					}
					else if(string.status == -100)
					{
						com.ixonos.fsc.requestHeaderError();
					}
					else
					{
						com.ixonos.fsc.serverErrorAlert();
					}
				}
			  
				if(string.status != 1)
				{
					com.ixonos.fsc.removeLoadPage();
				}			  
			  });		  
};
/**
 * access server data  methods ---------- end
 */

//when there is no any items list, the page should show the following items
com.ixonos.more.favourite.returnNoItem = function(noResultsContent)
{
	var html = '';
	html += '<div class="moreFavouriteNoResults">' + noResultsContent +'</div>';	

	$(".moreFavouriteItems").append(html);
}

//
com.ixonos.more.favourite.initEveryItem = function(friendId,picPath, name, location,country, age, gender, isOnline,countryPic)
{
	var html = '';
	html += '<div class="moreFavouriteItem">';
	html +=		'<div class="moreFavouriteId">'+friendId+'</div>';
	html += 	'<a class="deleteShadowButton"><div class="moreFavouriteHeader"><img class="moreFavouriteHeaderPic" width="83px"  src="'+ picPath+'"/></div></a>';
	html += 	'<a class="deleteShadowButton"><div class="moreFavouriteName"> '+com.ixonos.fsc.cutText(name,20) +' </div></a>';
	html += 	'<div class="moreFavouriteDes"> ';
	var tempGender = 'M';
	if(gender == "Female")
	{
		tempGender = 'F';
	}
	html +=			'<div class="moreFavouriteAttr">' + age +'/'+tempGender +'</div>';
	html +=			'<div class="moreFavouriteLocation">'+com.ixonos.fsc.cutText( country, 100) + '</div>';

	html +=		'</div>';
	
	html +=		'<a class="deleteShadowButton">';
	if(favouriteState == 1)
	{
		html +=  '<div class="moreFavouriteRemoveButton"></div>' ;
	}
	else
	{
		html +=	 '<div class="moreFavouriteBeFavourite">'+more.beFavourite +'</div>';
	}
	
	html +=  '</a>';
	if(isOnline)
	{
		html += 	'<div class="moreFavouriteSignal"> <img src="img/backupIcons/Public/Signal.png"/> </div>';
	}
	html += '</div>';
	$(".moreFavouriteItems").append(html);					
};


com.ixonos.more.favourite.changeToMyFavourite = function()
{
	$(".moreFavouriteMyFavourite").css("margin-left","6px");
	$(".moreFavouriteMyFavourite").css("width","154px");
	
	$(".moreFavouriteMyFavourite").css("background","url(img/backupIcons/Public/Tab_Bar_On.png) no-repeat");
	
	$(".moreFavouriteMyFans").css("width","152px");
	$(".moreFavouriteMyFans").css("background","url(img/backupIcons/Public/Tab_Bar_Off.png) no-repeat");

	favouriteState = 1;
	var currentOffset = favouriteScroller._currentOffset;	
	if(currentOffset.f < 0)
	{
		favouriteScroller.scrollTo(0,0);
	}
	$(".moreFavouriteItems").empty();
	com.ixonos.more.favourite.favouriteList(1);
	
};

com.ixonos.more.favourite.changeToMyFans = function()
{
	$(".moreFavouriteMyFavourite").css("margin-left","8px");
	$(".moreFavouriteMyFavourite").css("width","152px");
	
	$(".moreFavouriteMyFavourite").css("background","url(img/backupIcons/Public/Tab_Bar_Off.png) no-repeat");
	
	$(".moreFavouriteMyFans").css("width","154px");
	$(".moreFavouriteMyFans").css("background","url(img/backupIcons/Public/Tab_Bar_On.png) no-repeat");

	favouriteState = 2;
	
	var currentOffset = favouriteScroller._currentOffset;	
	if(currentOffset.f < 0)
	{
		favouriteScroller.scrollTo(0,0);
	}
	$(".moreFavouriteItems").empty();
	com.ixonos.more.favourite.myFanslist(1);

};


com.ixonos.more.favourite.bindFavouriteTitleItem = function()
{
	$(".moreFavouriteMyFavourite").click(function()
	{
		if(favouriteState != 1)
		{
			com.ixonos.more.favourite.changeToMyFavourite();
		}
	});
	
	$(".moreFavouriteMyFans").click(function()
	{
		if(favouriteState != 2)
		{
			com.ixonos.more.favourite.changeToMyFans();
		}
	});
	

	$(".favouriteBackButton").click(function()
	{
		loadPage("html/more.html","com.ixonos.more.onDeviceReady");
	});
	
	$('.favouritePoints').click(function(){
					   window.localStorage.setItem(buyPointsPage.previousPage,"html/Favourite.html");
								window.localStorage.setItem(buyPointsPage.previousPageDeviceReadyFunc,"com.ixonos.more.favourite.onDeviceReady");
					   loadPage("html/buyPoints.html","com.ixonos.buyPoints.onDeviceReady");
					   
					   });		
	
};

com.ixonos.more.favourite.bindPopupButton = function()
{
	$(".moreFavouriteYesButton").click(function()
									   {
									   $(".moreFavouriteConfirmPage").animate({top:'460px'},400,function()
																			   {
																			   $(".moreFavouriteConfirmPage").hide();
																			  com.ixonos.more.favourite.deleteFavourite();
																			  
																			   });
									   });
	
	$(".moreFavouriteCancelButton").click(function()
										  {
										  $(".moreFavouriteConfirmPage").animate({top:'460px'},400,function()
																				  {
																				  $(".moreFavouriteConfirmPage").hide();
																				  });										  
										  });


}; 

com.ixonos.more.favourite.bindListItems = function()
{
	
	if(isPhotoRespond)	
	{
    	$(".moreFavouriteHeader").click(function()
	    {
									  var friendId = $(this).parent().parent().children(".moreFavouriteId").text();	
									  window.localStorage.setItem(profileNextMember.memberToShowId, friendId);
									  window.localStorage.setItem(profileNextMember.profileBackToPage,"html/Favourite.html");
										window.localStorage.setItem(profileNextMember.previousPageDeviceReadyFunc,"com.ixonos.more.favourite.onDeviceReady");
										
										loadPage("html/Profile.html","com.ixonos.profile.onDeviceReady");											 
										

    	});
    }
	$(".moreFavouriteName").click(function()
	{
								var friendId = $(this).parent().parent().children(".moreFavouriteId").text();	
								window.localStorage.setItem(profileNextMember.memberToShowId, friendId);
								window.localStorage.setItem(profileNextMember.profileBackToPage,"html/Favourite.html");
								  window.localStorage.setItem(profileNextMember.previousPageDeviceReadyFunc,"com.ixonos.more.favourite.onDeviceReady");
								  
								  loadPage("html/Profile.html","com.ixonos.profile.onDeviceReady");											 
								  
	});
	
	$(".moreFavouriteBeFavourite").click(function()
										 {
										 favouriteCurrentFriendId = $(this).parent().parent().children(".moreFavouriteId").text();
										 favouriteCurrentFriendName = $(this).parent().parent().children(".deleteShadowButton").children(".moreFavouriteName").text();
										 
										 com.ixonos.more.favourite.beFavourite();
										 });
	
	$(".moreFavouriteRemoveButton").click(function()
										 {
										favouriteCurrentFriendId = $(this).parent().parent().children(".moreFavouriteId").text();	
										$(".moreFavouriteConfirmPage").show();
										$(".moreFavouriteConfirmPage").animate({top:'0px'});

										 });
};



com.ixonos.more.favourite.onTouchMove = function(event)
{
	var currentOffset = favouriteScroller._currentOffset;
	
	if( (currentOffset.f < favouriteOffsetHeight - favouriteScrollHeight + 20)&&(currentOffset.f < favouritePreviousOffset.f))
	{
		if(!favouriteIsInit)
		{
		switch(favouriteState)
		{
			//my friends list 
			case 1:
				if(favouriteHasTheNextPageMyFavourite)
				{
					favouriteIsInit = true;
					com.ixonos.more.favourite.favouriteList(favouriteCurrentPageNumberMyFavourite + 1);
					
				}
				break;
			// request in list
			case 2:
				if(favouriteHasTheNextPageMyFans)
				{
					favouriteIsInit = true;
					com.ixonos.more.favourite.myFanslist(favouriteCurrentPageNumberMyFans + 1);
				}
				break;
		}
		}
	}
	favouritePreviousOffset = currentOffset;

};


