/**
 * Display informations about pages we are not allowed to show
 * 
 * Handles request
 * 
 * @author Pierre HUBERT
 */

ComunicWeb.pages.userPage.accessForbidden = {

	/**
	 * Display the page for user with forbidden access
	 * 
	 * @param {Integer} userID The ID of the target user
	 * @param {Object} params Additional parametres
	 * @param {HTMLElement} target The target element on the screen
	 */
	display: function(id, params, target){
		
		//Check if user is signed in or not
		if(!signed_in()){

			//Inform user that he must sign in to continue
			elem = ComunicWeb.common.messages.createCalloutElem(
				"Sign in required",
				"Please sign in to get access to this page.",
				"danger"
			);

			elem.className += " user_access_denied_signed_out";

			target.appendChild(elem);

			return;

		}

		//Fetch informations about the user
		ComunicWeb.user.userInfos.getUserInfos(id, function(userinfos){
			
			//Check for errors
			if(userinfos.error){

				//Inform user it is impossible for him to access this page
				elem = ComunicWeb.common.messages.createCalloutElem(
					"Access denied",
					"You don't have the right to access this page.",
					"danger"
				);

				elem.className += " user_access_denied_signed_out";

				target.appendChild(elem);

				return;
			}

			//Show a dialog with basic user informations
			ComunicWeb.pages.userPage.accessForbidden.showBasicInfos(userinfos, target);


		});

	},

	/**
	 * Show basic user informations
	 * 
	 * @param {Object} userInfos Informations about the user to display
	 * @param {HTMLElement} target Target element for user informations
	 */
	showBasicInfos: function(userInfos, target){

		//Update page title
		document.title = userInfos.firstName + " " + userInfos.lastName;
		
		//Create box root
		var boxRoot = createElem2({
			appendTo: target,
			type: "div",
			class: "box box-primary box-user-access-denied" 
		});
		
		//Create box body
		var boxBody = createElem2({
			appendTo: boxRoot,
			class: "box-body box-profile",
			type: "div"
		});

		//Add user profile image
		var profileImage = createElem2({
			appendTo: boxBody,
			type: "img",
			class: "profile-user-img img-responsive img-circle",
			src: userInfos.accountImage,
		});

		//Add user name
		var userName = createElem2({
			appendTo: boxBody,
			type:"h3",
			class: "profile-username text-center",
			innerHTML: userInfos.firstName + " " + userInfos.lastName,
		});

		//Add a message to inform access to the page was denied
		var infosMsg = createElem2({
			appendTo: boxBody,
			type: "p",
			class: "text-center",
			innerHTML: "This account is private."
		});

		//Add friendship request message
		var requestArea = createElem2({
			appendTo: boxBody,
			type: "div",
			class: "text-center",
			innerHTML: "Loading..."
		});

		//Load friendship infos
		ComunicWeb.pages.userPage.friendshipStatus.display(userInfos.userID, requestArea);
	}

}