function photoalbum_upload_photo($filename, $user, $options = null)
{
    $category = isset($options['category']) ? $options['category'] : 4;
    /* Default to 8 if category is not set */
    $description = isset($options['description']) ? $options['description'] : null;
    $query = 'SELECT photos FROM photo_albums WHERE owner = "' . $user . '" AND position = "' . $category . '" LIMIT 1';
    $result = mysql_query($query) or die(report_sql_error($query, __FILE__, __LINE__));
    $data = mysql_fetch_assoc($result);
    $images_string = $data['photos'];
    $existing_images = substr_count($data['photos'], ',');
    if ($existing_images == 0) {
        $existing_images = strlen($existing_images) > 0 ? 1 : 0;
    } else {
        $existing_images = $existing_images + 1;
    }
    if ($existing_images > 9) {
        return array('status' => 'fail', 'reason' => 'Fotoalbumet är fullt');
    }
    $copy_data = read_copy_protection($filename);
    if ($copy_data['copyright'] == 1 && $_SESSION['login']['id'] != $copy_data['userid']) {
        return array('status' => 'fail', 'reason' => 'Bilden du försöker ladda upp är upphovsrättsskyddad, och kunde därför inte laddas upp');
    }
    $query = 'INSERT INTO photos (owner, timestamp, description) VALUES(' . $user . ', ' . time() . ', "' . $description . '")';
    mysql_query($query) or die(report_sql_error($query, __FILE__, __LINE__));
    $image_id = mysql_insert_id();
    $save_path = PATHS_IMAGES . 'photoalbums/images_' . round($image_id / 1000) . '/' . $image_id;
    if (!is_dir(PATHS_IMAGES . 'photoalbums/images_' . round($image_id / 1000))) {
        if (!mkdir(PATHS_IMAGES . 'photoalbums/images_' . round($image_id / 1000))) {
            to_logfile('error', __FILE__, __LINE__, 'Could not create directory', PATHS_IMAGES . 'photoalbums/images_' . round($image_id / 1000));
            return array('status' => 'fail', 'reason' => 'could not create directory');
        }
    }
    print_r($options);
    list($info_width, $info_height, $info_type, $info_attr) = getimagesize($filename);
    if ($info_width < 400 && $info_height < 300) {
        system('convert ' . $filename . ' ' . $save_path . '_full.jpg');
    } else {
        system('convert ' . $filename . ' -resize 400x300 ' . $save_path . '_full.jpg');
    }
    system('convert ' . $filename . ' -resize 60x45! ' . $save_path . '_thumb.jpg');
    /* ! disregards image proportions */
    /* Copyright info has to be written after resize, since it only works for JPEG files */
    if ($options['copyright'] == 'true') {
        write_copy_protection($save_path . '_full.jpg', 'Copyrighted Work');
        write_copy_protection($save_path . '_thumb.jpg', 'Copyrighted Work');
    } else {
        write_copy_protection($save_path . '_full.jpg', '');
        write_copy_protection($save_path . '_thumb.jpg', '');
    }
    unlink($filename);
    $images_string = strlen($images_string) > 0 ? $images_string . ',' . $image_id : $image_id;
    $query = 'UPDATE photo_albums SET photos = "' . $images_string . '" WHERE owner = "' . $user . '" AND position = "' . $category . '"';
    mysql_query($query) or die(report_sql_error($query, __FILE__, __LINE__));
    if (mysql_affected_rows() == 0) {
        return array('status' => 'fail', 'reason' => 'photo album does not exist!');
    }
    return array('status' => 'success', 'id' => $image_id);
}
        system('convert -resize ' . $avatar_full_width . 'x' . $avatar_full_height . '! ' . $avatar_tmp_crop_filename . ' ' . $avatar_tmp_full_filename, $retval_full);
        system('convert -resize ' . $avatar_thumb_width . 'x' . $avatar_thumb_height . '! ' . $avatar_tmp_crop_filename . ' ' . $avatar_tmp_thumb_filename, $retval_full);
    }
    header('Location:' . $_SERVER['PHP_SELF'] . '?step=3' . (isset($_GET['registerproccess']) ? '&registerproccess=1' : ''));
}
// Spara
if ($_POST && $_GET['action'] == 'save') {
    $avatar_full_filename = $avatar_path_full . $_SESSION['login']['id'] . '.jpg';
    $avatar_thumb_filename = $avatar_path_thumb . $_SESSION['login']['id'] . '.jpg';
    rename($avatar_tmp_full_filename, $avatar_full_filename);
    rename($avatar_tmp_thumb_filename, $avatar_thumb_filename);
    unlink($avatar_tmp_orginal_filename);
    unlink($avatar_tmp_crop_filename);
    /* Write copy protection tags */
    write_copy_protection($avatar_full_filename, 'Copyrighted Work');
    write_copy_protection($avatar_thumb_filename, 'Copyrighted Work');
    $newdata['userinfo']['image'] = 1;
    login_save_user_data($_SESSION['login']['id'], $newdata);
    $_SESSION['userinfo']['image'] = 1;
    /*$message_bar = '<a href="/traffa/profile.php?id=' . $_SESSION['login']['id'] . '">' . $_SESSION['login']['username'] . '</a> laddade nyss upp en ny visningsbild.';
    		$file_handle = fopen(PATHS_NCLUDE . 'message_bar_current.txt', 'w');
    		fwrite($file_handle, $message_bar);
    		fclose($file_handle);*/
    jscript_alert('Din bild är nu sparad och lagd på förhandsgranskning\\nFör att din nya bild ska visas kan du behöva trycka på F5. Om din gamla bild fortsätter visas är detta helt normalt, det kan ta ett par dagar innan din dator "glömt av" den gamla bilden och hämtat den nya!');
    if (isset($_POST['registerproccess'])) {
        jscript_location('/register.php?nextstep=3&bild=1');
    } else {
        jscript_location($hp_url . '/installningar/generalsettings.php');
    }
}
// Ta bort