
/**
 * readCookie
 * Comme son l'indique, cette methode lit un cookie, dont on passe le nom en paramètres
 * @param string cookieName  cookie name
 * @param string message_cookieNeeded  error message (xml), must have cookie enabled
 * @param string jquerySelector  jQuery selector, une div ou p pour afficher des messages
 * @return string cookie value
 */
readCookie = function(cookieName) {
	
	if(navigator.cookieEnabled) {	
		var allcookies = document.cookie;
		var temp = cookieName+"=";
		var pos = allcookies.indexOf(temp);
		if (pos != -1) {
			var start = pos + temp.length;
			var end = allcookies.indexOf(";", start); 
			if (end == -1) end = allcookies.length;
			var value = allcookies.substring(start, end);
			return value;
		}
		else{ 
			return false;
		}
	}
	else{
		
	}
}

/**
 * Cette fonction lit le cookie avec les ids et appelle orderFriendsByIds
 */
sortDatingSimFriend = function(){
	var needToOrder = readCookie("datingSimFriendsOrder");
	if (needToOrder != false){
		orderFriendsByIds(needToOrder,"myfriends" );
	}
	else if(typeof idsFriendsFromBDD != "undefined"){
		orderFriendsByIds(idsFriendsFromBDD,"myfriends" );
	}
}

/**
 * orderFriendsByIds
 *  Nécessite le plugin jquery  $.tinysort
 * Classe les amis en fonction d'une chaine d'ids :
 * 2,3,18,7,...
 * Cette chaine provient généralement d'un cookie
 * Les amis doivent être les items d'une liste, et posseder un span fils, d'id "order_"+iduser
 * Ex :
 * <li class="friends">
 * 	<span id="order_{$iduser}"></span>
 * 	...
 * </li>
 */
orderFriendsByIds = function(idsString, page){
	var array = idsString.split(',');
	for (var i = 0; i < array.length; i++) {
		$("#order_" + array[i]).text(i + 1);
	}
	$.tinysort.defaults.order = "asc";
	if (page == "index"){
		$("ul#publicFriendList>li").tsort("span.order");
	}
	else if(page == "myfriends"){
		$("ul#allMyFriend>li").tsort("span.order");
	} 
}

/**
 * Après le tri, on applique une classe aux x premiers amis, qui seront affichés en front.
 * @param string jQuerySelector la classe utilisée pour les amis (li)
 * @param string css class, celle qui s'applique aux amis affichés
 * @param string css class, celle qui s'applique aux autres
 * Rqs, ces classes doivent définies dans la page, afin d'être accessible à jQuery
 */
markXfriends = function(jQuerySelector, displayedClass, unDisplayedClass){
	$(jQuerySelector+":lt(12)").addClass(displayedClass);
	$(jQuerySelector+":gt(11)").addClass(unDisplayedClass);
}	
	
displayMessage = function(jquerySelector, message){
	$(jquerySelector).text(message_cookieNeeded)
}
	
/**
 * Accepter les amis,
 * Finalement, après acceptation d'amis, on recharge la page.
 * Du coup les messages d'erreur initiaux ne servent plus vraiment.
 * @param bool, pour distinguer le cas d'un amis ou de plusieurs
 * @param IdsToAccept, une chaine d'id
 */
acceptFriends = function(IdsToAccept, bool){
	if (bool == true){   //cas d'un seul amis
		$.post("ajaxRecorder.html",{idFriendToAccept:""+IdsToAccept});
	}
	else{  //cas de plusieurs amis
		$.post("ajaxRecorder.html",{idsFriendsToAccept:""+IdsToAccept});
	}
}

anonymF = function(){
	$("#returnMessage").fadeOut();
	location.reload();
}

slider_text = function(id,value){
	switch (value){
		case 0 :
			$("#friendlyLevel_"+id).text("visage-connu");
			$("#friendlyLevelBis_"+id).text("0");
		break;
		case 1:
			$("#friendlyLevel_"+id).text("connaissance");
			$("#friendlyLevelBis_"+id).text("1");
		break;
		case 2:
			$("#friendlyLevel_"+id).text("ami");
			$("#friendlyLevelBis_"+id).text("2");
		break;
		case 3:
			$("#friendlyLevel_"+id).text("meilleur-ami");
			$("#friendlyLevelBis_"+id).text("3");
		break;
		case 4:
			$("#friendlyLevel_"+id).text("amoureux");
			$("#friendlyLevelBis_"+id).text("4");
		break;
	}
}

setSliderNivo = function(nivo,element){
	switch (nivo){
	
	case "visage-connu":
		$(element).slider('option', 'value', 0);
		break;
	case "connaissance":
		$(element).slider('option', 'value', 1);
		break;
	case "ami" :
		$(element).slider('option', 'value', 2);
		break;
	case "meilleur-ami":
		$(element).slider('option', 'value', 3);
		break;
	case "amoureux":
		$(element).slider('option', 'value', 4);
		break;
	default :
	
		break;
	}
}

writeFriendsOrder = function(serialized,friendsDisplayedNb){
	var stringFriendsOrder = "";
	for (i=0;i<friendsDisplayedNb;i++){
		var temp = serialized[i].split("_");
		stringFriendsOrder += temp[1] +",";
	}		
	if (navigator.cookieEnabled){
		document.cookie = "datingSimFriendsOrder="+stringFriendsOrder+";max-age=" + (60*60*24*365)+";path=/"
	}
	$.post("ajaxRecorder.html",{idsFriendsToDisplay:""+stringFriendsOrder});
}

addBorderToFriendsItem = function(nbfriend){
	$(".myFriends").each(function(i){
		$(this).css("border-left","2px solid #269dab");
		$(this).css("border-top","2px solid #269dab");
		if( (i+1)%4==0){
			$(this).css("border-right","2px solid #269dab");
		}
	});
	var nbfriend = $(".myFriends");
	/**
	 * Cas de la bordure droite du dernier item */
	if( nbfriend.length%4 != 0 ){
		var itemToBorder = nbfriend.length-2
		$(".myFriends:gt("+itemToBorder+")").css("border-right","2px solid #269dab");
	}
	/**
	 * Gestion de la bordure du bas */
	if(nbfriend.length<4)
		$(".myFriends").css("border-bottom","2px solid #269dab");
	else{
		var lastFriends = nbfriend.length -5;
		$(".myFriends:gt("+lastFriends+")").css("border-bottom","2px solid #269dab");
	}	
}

