function getAlienFromServer($sNickname) {
  var $actUrl = "/json/ajax_getAlienProfile.php?nickname=" + $sNickname;
  var $response = "";
  $response = ResourceLoader.getJsonObject($actUrl);

  if($response != null) {
    if($response.error != null) {
      if($response.error == "0") {
        syncAlien($response.alien);
        if (Plappadu.Environment.showAlienProfile === true) {
          xshow("alienProfile");
        } else {
          xshow("home");
        }
      } else {
       alert($response.error);
      }
    } else {
      alert("Es ist ein bisher unbekannter Fehler aufgetreten. Code: 701");
    }
  } else {
    alert("Es ist ein bisher unbekannter Fehler aufgetreten. Code: 702");
  }

}

function getUserFromServer($sType, $oParam) {
  var $actURL  = "/json/ajax_login.php?type=" + $sType;
  if ($sType == "activate") {
    $actURL += "&uid=" + Plappadu.Environment.activationRequestUserId + "&aid=" + Plappadu.Environment.activationRequestActivationKey;
  }
  var $response = "";

  if ($oParam != null) {
    $response = ResourceLoader.getJsonObject($actURL, $oParam);
  } else {
    $response = ResourceLoader.getJsonObject($actURL);
  }

  if ($sType == "session") {
    if($response != null) {
      if($response.error != null) {
        if($response.error == "0") {
          syncUser($response.user);
          if (Plappadu.Environment.showAlienProfile === true) {
            xshow("alienProfile");
          } else {
            xshow("home");
          }
          if(document.getElementById("mobile_interaction") != null) {
            Plappadu.Environment.Skin.mobileSkinLoggedIn();
          }
        } else {
         alert($response.error);
        }
      } else {
        alert("Es ist ein bisher unbekannter Fehler aufgetreten. Code: 701");
      }
    } else {
      alert("Es ist ein bisher unbekannter Fehler aufgetreten. Code: 702");
    }
  } else if ($sType == "login") {
    if ($response != null) {
      if (($response.error != null) && ($response.error != "0")) {
        alert($response.error);
      } else {
        syncUser($response.user);
        if (Plappadu.Environment.showAlienProfile === true) {
          xshow("alienProfile");
        } else {
          xshow("home");
        }
        if(document.getElementById("mobile_interaction") != null) {
          Plappadu.Environment.Skin.mobileSkinLoggedIn();
        }
      }
    } else {
      alert("Es ist ein bisher unbekannter Fehler aufgetreten. Code: 703");
    }
  } else if ($sType == "activate") {
    if ($response != null) {
      if ($response.error != null) {
        if ($response.error == "0") {
          syncUser($response.user);
          if (Plappadu.Environment.showAlienProfile === true) {
            xshow("alienProfile");
          } else {
            xshow("home");
          }
        } else {
          alert($response.error);
        }
      } else {
        alert("Es ist ein bisher unbekannter Fehler aufgetreten. Code: 704");
      }
    } else {
      alert("Es ist ein bisher unbekannter Fehler aufgetreten. Code: 705");
    }
  }
}

function syncUser($oUser) {
  Plappadu.Environment.User.isLoggedIn = true;
  Plappadu.Environment.User.userId = $oUser.userId;
  Plappadu.Environment.User.id = $oUser.userId;
  Plappadu.Environment.User.nickname = $oUser.nickname;
  Plappadu.Environment.User.firstName = $oUser.firstName;
  Plappadu.Environment.User.lastName = $oUser.lastName;
  Plappadu.Environment.User.email = $oUser.email;
  Plappadu.Environment.User.mobilePhone = $oUser.mobilePhone;
  if ($oUser.mobilePhone != "") {
    Plappadu.Environment.User.hasMobile = true;
  }
  if ($oUser.status == 2) {
    Plappadu.Environment.User.hasMobileActivated = true;
  }
  Plappadu.Environment.User.avatarId = $oUser.avatarId;
  Plappadu.Environment.User.locale = $oUser.locale;
  Plappadu.Environment.User.status = $oUser.status;
  Plappadu.Environment.User.newsletter = $oUser.newsletter;
  Plappadu.Environment.User.created = $oUser.created;
  Plappadu.Environment.User.name = ($oUser.firstName == "" && $oUser.lastName == "") ? $oUser.nickname : $oUser.firstName + " " + $oUser.lastName;
  Plappadu.Environment.User.numberOfFriends = $oUser.numberOfFriends;
  Plappadu.Environment.User.numberOfFollowers = $oUser.numberOfFollowers;
  Plappadu.Environment.User.numberOfPostings = $oUser.numberOfPostings;
  Plappadu.Environment.User.numberOfFavorites = $oUser.numberOfFavorites;
  Plappadu.Environment.User.avatarPath = $oUser.avatarPath;
  Plappadu.Environment.User.Favorites = $oUser.Favorites;
  return true;
}

function syncAlien($oAlien) {
  Plappadu.Environment.Alien.userId = $oAlien.userId;
  Plappadu.Environment.Alien.id = $oAlien.userId;
  Plappadu.Environment.Alien.nickname = $oAlien.nickname;
  Plappadu.Environment.Alien.avatarId = $oAlien.avatarId;
  Plappadu.Environment.Alien.numberOfFriends = $oAlien.numberOfFriends;
  Plappadu.Environment.Alien.numberOfFollowers = $oAlien.numberOfFollowers;
  Plappadu.Environment.Alien.numberOfPostings = $oAlien.numberOfPostings;
  Plappadu.Environment.Alien.oneLineBio = $oAlien.oneLineBio;
  Plappadu.Environment.Alien.fiURL = $oAlien.fiURL;
  Plappadu.Environment.Alien.placeInWorld = $oAlien.placeInWorld;
}