void VJSImage::_thumbnail(XBOX::VJSParms_callStaticFunction& ioParms, VJSPictureContainer* inPict)
{
	bool ok = true;
	if (!ioParms.IsNumberParam(1))
	{
		ok = false;
		vThrowError(VE_JVSC_WRONG_PARAMETER_TYPE_NUMBER, "1");
	}
	if (!ioParms.IsNumberParam(2))
	{
		ok = false;
		vThrowError(VE_JVSC_WRONG_PARAMETER_TYPE_NUMBER, "2");
	}
	VPicture* pic = inPict->GetPict();
	if (pic != nil && ok)
	{
		sLONG w = 0, h = 0, mode = 0;
		ioParms.GetLongParam(1, &w);
		ioParms.GetLongParam(2, &h);
		ioParms.GetLongParam(3, &mode);
		if (w == 0)
			w = 300;
		if (h == 0)
			h = 300;
		if (mode == 0)
			mode = 4;
		VPicture* thumb = pic->BuildThumbnail(w, h, (PictureMosaic)mode);
		if (thumb != nil)
		{
			VPictureCodecFactoryRef fact;
			VPicture* thumb2 = new VPicture();
			VError err = fact->Encode(*thumb, L".jpg", *thumb2, nil);
			if (err == VE_OK)
			{
				/*
				VJSPictureContainer* pictContains = new VJSPictureContainer(thumb2, true, ioParms.GetContextRef());
				ioParms.ReturnValue(VJSImage::CreateInstance(ioParms.GetContextRef(), pictContains));
				pictContains->Release();
				*/
				ioParms.ReturnVValue(*thumb2);
				delete thumb2;
			}
			else
			{
				delete thumb2;
				ioParms.ReturnNullValue();
			}
			delete thumb;
		}
		else
			ioParms.ReturnNullValue();
	}
	else
		ioParms.ReturnNullValue();
}