userId = 0;
userStatus = false;
username = '';
profile = new Array();

var userEngine = {
	init: function(page) {
	  	userEngine.renderProfileButtons();
		refresher = new PeriodicalExecuter(forumEngine.refresh_comments, 60); 
		forumEngine.output_latestForumPosts(20);
		doRefresh = getCookieValue('doRefresh');
		if (doRefresh == 'refresh') {
      		window.location.reload(true);
			writeSessionCookie('doRefresh', 'false');
    	}
	    if ($('moderatorInfoArea')) userEngine.getModeratorInfo();
	},
	
	editProfileInit: function() {
	 if (my.id < 1) {
	   $('userArea').innerHTML = 'Du må være pålogget for å bruke denne siden.';
	   return;
   }

  	 $('username').innerHTML = my.username;
     var myAjax = new Ajax.Request("/user/user_action.php", {
    		method: 'post',
    	  requestHeaders: ['Cache-Control', 'no-cache, must-revalidate, no-store', 'Expires', '0', 'pragma', 'no-cache'],
    		parameters: 'task=getProfile&ajax=' + new Date() * 1,
    		onComplete: function(req){
          if (req.responseText) {
  				  eval("profile = " + req.responseText);
            	  userEngine.populateProfileInputs();
    			} 
    		}
      });	

  },

	
	editAccountInit: function() {
	 if (my.id < 1) {
	   $('userArea').innerHTML = 'Du må være pålogget for å bruke denne siden.';
	   return;
   }
	 $('username').innerHTML = my.username;
  },
	
	populateProfileInputs: function() {
	 if (profile.fullName) $('fullNameInput').value = profile.fullName;
	 if (profile.profileText) $('profileTextInput').value = profile.profileText;
	 if (profile.email) $('emailInput').value = profile.email;
	 $('newsletter').checked = (profile.newsletter == 1);
	 $('newsletterFormatHTML').checked = (profile.newsletterFormat == 'html') ;
	 $('newsletterFormatTekst').checked = (profile.newsletterFormat == 'tekst');
  },
	
	doLogIn: function() {
	  userEngine.doLogOff();
  },
	
	doLogOff: function() {
	  userEngine.renderProfileButtons();
	  userEngine.getModeratorInfo();
  },
	
	renderProfileButtons: function() {
	 if ($('profileButtons')) {
  	 output = '';
  	 if ((my.id > 0) && (userId == my.id)) {
      output += '<div class="profileButton" onclick="top.location.href=\'/brukere/profilendring/\';"><div class="inner">Endre min profil</div></div>';
      output += '<div class="profileButton" onclick="top.location.href=\'/brukere/nyttbilde/\';"><div class="inner">Bytt profilbilde</div></div>'; 
      output += '<div class="profileButton" onclick="top.location.href=\'/brukere/konto/\'";><div class="inner">Skift passord</div></div>'; 
     } else {
      if (ur_super()) {
        if ((userStatus != 'moderator') && (userStatus != 'superuser')) output += '<div class="profileButton" onclick="javascript:userEngine.doUserAction(\'makeMod\');"><div class="inner">Gjør til moderator</div></div>';    
        if ((userStatus == 'moderator')) output += '<div class="profileButton" onclick="javascript:userEngine.doUserAction(\'unMakeMod\');"><div class="inner">Fjern modstatus</div></div>';    
      } 
      if (ur_mod()) {
        if ((userStatus != 'suspendert')) output += '<div class="profileButton" onclick="javascript: userEngine.doUserAction(\'suspendUser\', true);"><div class="inner">Suspender bruker</div></div>';       
        if (userStatus == 'suspendert') output += '<div class="profileButton" onclick="javascript: userEngine.doUserAction(\'unSuspendUser\');"><div class="inner">Desuspender bruker</div></div>';  
        output += '<div class="profileButton" onclick="javascript: userEngine.doUserAction(\'removeAvatar\', 1);"><div class="inner">Fjern avatar</div></div>';  
      }
     }
  	 $('profileButtons').innerHTML = output;
    }
  },
  
  doUserAction: function(action, getReason) {
     if (typeof action == "undefined") return;
     if (typeof getReason == "undefined") getReason = false;
     readmission = 0;
     if (getReason) {
        var reason = prompt('Tør vi spørre om årsaken til at du gjør dette?', '');
        if ((action == 'suspendUser')) {
        	promptMsg = 'Hvis dette bare et et "smekk på fingrene", så kan du velge å automatisk desuspendere brukeren igjen etter\n\n';
        	promptMsg += '1 - Tre dager\n';
        	promptMsg += '2 - En uke\n';
        	promptMsg += '3 - To uker\n';
        	promptMsg += '4 - En måned';
        	promptMsg += '\n';
        	promptMsg += '0 - Permanent suspensjon\n';
	        readmission = prompt(promptMsg,0);
			if( readmission == null ) // cancel button
				return;
	        if (readmission == 1) readmission = 3;
	        else if (readmission == 2) readmission = 7;
	        else if (readmission == 3) readmission = 14; 
	        else if (readmission == 4) readmission = 30;
	        else readmission = 0;
        }
        if (!reason) return;
     } else {
        var reason = '';
     }
     var myAjax = new Ajax.Request("/user/user_action.php", {
				method: 'post',
			  requestHeaders: ['Cache-Control', 'no-cache, must-revalidate, no-store', 'Expires', '0', 'pragma', 'no-cache'],
				parameters: 'task=' + action + '&userId=' + userId + '&username=' + encodeURIComponent(username) + '&reason=' + reason + '&readmission=' + readmission + '&ajax=' + new Date() * 1,
				onSuccess: function(req){
          if (req.responseText) {
  				  alert(req.responseText);
  				} else {
  				  window.location.reload(true);
          }
				}
		  });	
  },
  
  submitProfileEdits: function() {
    fullName = $F('fullNameInput');
    email = $F('emailInput');
    profileText = $F('profileTextInput');
    var newsletter = ($('newsletter').checked) ? 1 : 0;
    var newsletterFormat = ($('newsletterFormatHTML').checked) ? 'html' : 'tekst';
    if (!fullName) {
      alert('Du kan ikke ha et blankt navn!');
      return;
    }
    var myAjax = new Ajax.Request("/user/user_action.php", {
			method: 'post',
		  requestHeaders: ['Cache-Control', 'no-cache, must-revalidate, no-store', 'Expires', '0', 'pragma', 'no-cache'],
			parameters: 'task=submitProfile&fullName=' + encodeURIComponent(fullName) + '&profileText=' + encodeURIComponent(profileText) + '&newsletter=' + newsletter + '&newsletterFormat=' + newsletterFormat + '&email=' + encodeURIComponent(email) + '&ajax=' + new Date() * 1,
			onSuccess: function(req){
        if (req.responseText) {
				  alert(req.responseText);
				} else {
				  // alert("Din profil har blitt oppdatert - du blir nå sendt tilbake til brukersiden din :)");
	        writeSessionCookie('doRefresh', 'false');
				  top.location.href='/brukere/' + encodeURIComponent(my.username) + '?nocache=' + new Date() * 1;
        }
			}
	  });	 
  },
  
  submitNewPassword: function() {
    var currentPassword = $F('currentPassword');
    var newPassword = $F('newPassword');
    var newPasswordConfirm = $F('newPasswordConfirm');
    if (!currentPassword || !newPassword || !newPasswordConfirm) {
      alert("Du må fylle ut alle tre passordfeltene først!");
      return;
    }
    if (newPassword != newPasswordConfirm) {
      alert("Passordene du har skrevet inn matcher ikke!");
      return;
    }
    var myAjax = new Ajax.Request("/user/user_action.php", {
			method: 'post',
		  requestHeaders: ['Cache-Control', 'no-cache, must-revalidate, no-store', 'Expires', '0', 'pragma', 'no-cache'],
			parameters: 'task=submitNewPassword&currentPassword=' + encodeURIComponent(currentPassword) + '&newPassword=' + encodeURIComponent(newPassword) + '&ajax=' + new Date() * 1,
			onSuccess: function(req){
        if (req.responseText) {
				  alert(req.responseText);
				} else {
				  alert("Passordet ditt har blitt endret. Prøv å huske det til neste gang du logger på :)");
          top.location.href="/brukere/" + encodeURIComponent(my.username) + "/";
        }
			}
	  });	 
  },
  
  showCommentedArticles: function() {
    var myAjax = new Ajax.Request("/user/user_action.php", {
			method: 'post',
		  requestHeaders: ['Cache-Control', 'no-cache, must-revalidate, no-store', 'Expires', '0', 'pragma', 'no-cache'],
			parameters: 'task=showCommentedArticles&&userId=' + userId + '&username=' + encodeURIComponent(username) + '&ajax=' + new Date() * 1,
			onSuccess: function(req){
        $('articleComments').innerHTML = '<div class="inner">' + req.responseText + '</div>';
 			}
	  });	 
  },
  
  showForumPosts: function() {
    var myAjax = new Ajax.Request("/user/user_action.php", {
			method: 'post',
		  requestHeaders: ['Cache-Control', 'no-cache, must-revalidate, no-store', 'Expires', '0', 'pragma', 'no-cache'],
			parameters: 'task=showForumPosts&userId=' + userId + '&username=' + encodeURIComponent(username) + '&ajax=' + new Date() * 1,
			onSuccess: function(req){
        $('forumPosts').innerHTML = '<div class="inner">' + req.responseText + '</div>';
 			}
	  });	 
  },

  getModeratorInfo: function() {
    if (ur_mod()) {
      var myAjax = new Ajax.Request("/user/user_action.php", {
  			method: 'post',
  		  requestHeaders: ['Cache-Control', 'no-cache, must-revalidate, no-store', 'Expires', '0', 'pragma', 'no-cache'],
  			parameters: 'task=getModeratorInfo&userId=' + userId + '&username=' + encodeURIComponent(username) + '&ajax=' + new Date() * 1,
  			onSuccess: function(req){
          $('moderatorInfoArea').innerHTML = '<div class="profileBox" id="moderatorInfoBox"><div class="inner">' + req.responseText + '</div></div>';
          
   			}
  	  });	 
    } else $('moderatorInfoArea').innerHTML = '';
    
  },

  showDeletedPosts: function() {
    $('deletedPostsList').show();
  },
  
  hideDeletedPosts: function() {
    $('deletedPostsList').hide();
  },
  

  deactivateUser: function() {
	if (confirm('Er du virkelig helt sikker på at du vil slette denne brukeren? \n\nDu vil ikke kunne reaktivere den senere. \n\nSelv om du deaktiverer denne brukeren, vil du likevel ikke kunne opprette en ny bruker med samme navn som denne brukeren. \n\nSå vi spør igjen: er du helt sikker på at du aldri mer har lyst til å logge på ITavisen.no under brukernavnet "' + my.username + '"?')) {
		confirmPassword = prompt('Vennligst bekreft passordet ditt før vi deaktiverer brukerkontoen','');
		if (confirmPassword) {
				var myAjax = new Ajax.Request("/user/user_action.php", {
					  method: 'post',
					  requestHeaders: ['Cache-Control', 'no-cache, must-revalidate, no-store', 'Expires', '0', 'pragma', 'no-cache'],
						parameters: 'task=deactivateUser&confirmPassword=' + encodeURIComponent(confirmPassword),
						onSuccess: function(req){
							if (req.responseText) {
								  alert(req.responseText);
							} else {
								fpEngine.logOff();
								setTimeout('top.location.href = "/";', 2000);
							}
						}
				  });	
		}
	}
  },
  
  setUserEmail: function(defaultEmail) {
  	if(typeof defaultEmail == "undefined")defaultEmail="";
  	newEmail = prompt('Oppgi ny epostadresse for denne brukeren', '');
  	if (newEmail) {
  		var myAjax = new Ajax.Request("/user/user_action.php", {
				method: 'post',
			  requestHeaders: ['Cache-Control', 'no-cache, must-revalidate, no-store', 'Expires', '0', 'pragma', 'no-cache'],
				parameters: 'task=setUserEmail&userId=' + userId + '&username=' + encodeURIComponent(username) + '&newEmail=' + encodeURIComponent(newEmail) + '&ajax=' + new Date() * 1,
				onSuccess: function(req){
          if (req.responseText) {
  				  alert(req.responseText);
  				} else {
  				  window.location.reload(true);
          }
				}
		  });	
  	}  	
  },
  
	reportProfile: function() {
      if (!userId) return;
      reason = prompt('Hvis du mener det er noe galt med denne brukerprofilen, og du ønsker at moderatorene skal ta en nærmere titt på den (evt. fjerne den), vennligst oppgi begrunnelsen din for dette ønsket her: ', '');
      if (reason) {
        var myAjax = new Ajax.Request("/user/user_action.php", {
          method: 'post',
          requestHeaders: ['Cache-Control', 'no-cache, must-revalidate, no-store', 'Expires', '0', 'pragma', 'no-cache'],
          parameters: 'task=reportProfile&userId=' + userId + '&username=' + encodeURIComponent(username) + '&reason=' + encodeURIComponent(reason) + '&ajax=' + new Date() * 1,
          onSuccess: function(req){
              if (req.responseText) {
                alert(req.responseText);
              } else {
                alert('Takk! Din kommentar er registrert, og ITavisens moderatorer vil bli varslet. ');
                $('reportProfile').style.display = 'none';
              }
            }
          });
      }
	}



}

