function add_images()
 {
     $QualityValue = array(100, 92, 80, 70, 60);
     $error = false;
     if (isset($_FILES['Filedata']['error'])) {
         $error = $_FILES['Filedata']['error'];
     }
     if ($error) {
         die(json_encode(array("error" => $this->uploadErrors[$error])));
     }
     require "{$this->basepath}/core/model/Image.php";
     if (isset($_POST['product'])) {
         $parent = $_POST['product'];
         $context = "product";
     }
     if (isset($_POST['category'])) {
         $parent = $_POST['category'];
         $context = "category";
     }
     // Save the source image
     $Image = new Asset();
     $Image->parent = $parent;
     $Image->context = $context;
     $Image->datatype = "image";
     $Image->name = $_FILES['Filedata']['name'];
     list($width, $height, $mimetype, $attr) = getimagesize($_FILES['Filedata']['tmp_name']);
     $Image->properties = array("width" => $width, "height" => $height, "mimetype" => image_type_to_mime_type($mimetype), "attr" => $attr);
     $Image->data = addslashes(file_get_contents($_FILES['Filedata']['tmp_name']));
     $Image->save();
     unset($Image->data);
     // Save memory for small image & thumbnail processing
     // Generate Small Size
     $SmallSettings = array();
     $SmallSettings['width'] = $this->Settings->get('gallery_small_width');
     $SmallSettings['height'] = $this->Settings->get('gallery_small_height');
     $SmallSettings['sizing'] = $this->Settings->get('gallery_small_sizing');
     $SmallSettings['quality'] = $this->Settings->get('gallery_small_quality');
     $Small = new Asset();
     $Small->parent = $Image->parent;
     $Small->context = $context;
     $Small->datatype = "small";
     $Small->src = $Image->id;
     $Small->name = "small_" . $Image->name;
     $Small->data = file_get_contents($_FILES['Filedata']['tmp_name']);
     $SmallSizing = new ImageProcessor($Small->data, $width, $height);
     switch ($SmallSettings['sizing']) {
         // case "0": $SmallSizing->scaleToWidth($SmallSettings['width']); break;
         // case "1": $SmallSizing->scaleToHeight($SmallSettings['height']); break;
         case "0":
             $SmallSizing->scaleToFit($SmallSettings['width'], $SmallSettings['height']);
             break;
         case "1":
             $SmallSizing->scaleCrop($SmallSettings['width'], $SmallSettings['height']);
             break;
     }
     $SmallSizing->UnsharpMask(75);
     $Small->data = addslashes($SmallSizing->imagefile($QualityValue[$SmallSettings['quality']]));
     $Small->properties = array();
     $Small->properties['width'] = $SmallSizing->Processed->width;
     $Small->properties['height'] = $SmallSizing->Processed->height;
     $Small->properties['mimetype'] = "image/jpeg";
     unset($SmallSizing);
     $Small->save();
     unset($Small);
     // Generate Thumbnail
     $ThumbnailSettings = array();
     $ThumbnailSettings['width'] = $this->Settings->get('gallery_thumbnail_width');
     $ThumbnailSettings['height'] = $this->Settings->get('gallery_thumbnail_height');
     $ThumbnailSettings['sizing'] = $this->Settings->get('gallery_thumbnail_sizing');
     $ThumbnailSettings['quality'] = $this->Settings->get('gallery_thumbnail_quality');
     $Thumbnail = new Asset();
     $Thumbnail->parent = $Image->parent;
     $Thumbnail->context = $context;
     $Thumbnail->datatype = "thumbnail";
     $Thumbnail->src = $Image->id;
     $Thumbnail->name = "thumbnail_" . $Image->name;
     $Thumbnail->data = file_get_contents($_FILES['Filedata']['tmp_name']);
     $ThumbnailSizing = new ImageProcessor($Thumbnail->data, $width, $height);
     switch ($ThumbnailSettings['sizing']) {
         // case "0": $ThumbnailSizing->scaleToWidth($ThumbnailSettings['width']); break;
         // case "1": $ThumbnailSizing->scaleToHeight($ThumbnailSettings['height']); break;
         case "0":
             $ThumbnailSizing->scaleToFit($ThumbnailSettings['width'], $ThumbnailSettings['height']);
             break;
         case "1":
             $ThumbnailSizing->scaleCrop($ThumbnailSettings['width'], $ThumbnailSettings['height']);
             break;
     }
     $ThumbnailSizing->UnsharpMask();
     $Thumbnail->data = addslashes($ThumbnailSizing->imagefile($QualityValue[$ThumbnailSettings['quality']]));
     $Thumbnail->properties = array();
     $Thumbnail->properties['width'] = $ThumbnailSizing->Processed->width;
     $Thumbnail->properties['height'] = $ThumbnailSizing->Processed->height;
     $Thumbnail->properties['mimetype'] = "image/jpeg";
     unset($ThumbnailSizing);
     $Thumbnail->save();
     unset($Thumbnail->data);
     echo json_encode(array("id" => $Thumbnail->id, "src" => $Thumbnail->src));
 }