<!-- #include file="./include.asp" -->
<%
main()
Sub main()

	If Not(InternetCheck()) Then
		Exit Sub
	End If
'	If Not(VisitorCheck()) Then
'		Exit Sub
'	End If
	If Not(ShopAdminCheck()) Then
		Exit Sub
	End If
'Response.Write(GB_ShopAdmin)
'Exit Sub

	Dim Query
	Dim Content
	Dim Content2


	'画像ファイルの最大サイズ
	Dim MaxFileSize
	MaxFileSize = 512 'KByte

	'画像フォルダ作成
	Dim fso
	Set fso = Server.CreateObject("Scripting.FileSystemObject")
	Dim ImageFolder
	ImageFolder = "" & HomeAliasSL & ItemFolderSL
	If Not(fso.FolderExists(Server.MapPath(ImageFolder))) Then
		fso.CreateFolder(Server.MapPath(ImageFolder))
	End If
	ImageFolder = ImageFolder & GB_ShopAdmin & "/"
	If Not(fso.FolderExists(Server.MapPath(ImageFolder))) Then
		fso.CreateFolder(Server.MapPath(ImageFolder))
	End If


	Dim BASPObj
	Dim Bytes, BinData, FileName(3), FileSize, l1

	Bytes = Request.TotalBytes
	On Error Resume Next
		Err.Clear()
		BinData = Request.BinaryRead(Bytes)
		If Err.Description <> "" Then
			'こちらはIISによる制限
			Response.Write("エラーが発生しました。<br>ファイルサイズが大きすぎる可能性があります。<br><br>")
			Response.Write("エラーコード:")
			Response.Write(Err.Description)
			Response.Write("<br><br>")
			Response.Write("<a href=""JavaScript:history.go(-1)"">戻る</a>")
			Exit Sub
		End If
	On Error Goto 0

	Set BASPObj = Server.CreateObject("basp21")

	Dim Item
	Item = BASPObj.Form(BinData, "Item")

	Dim Order
	Order = BASPObj.Form(BinData, "Order")

	Dim Kaihatsu
	Kaihatsu = BASPObj.Form(BinData, "Kaihatsu")
	Dim Cat
	Cat = BASPObj.Form(BinData, "Cat")
	Dim SubCat
	SubCat = BASPObj.Form(BinData, "SubCat")
	Dim Area
	Area = BASPObj.Form(BinData, "Area")
	If Area = "" Then
		Area = "0"
	End If
	Dim Pref
	Pref = BASPObj.Form(BinData, "Pref")
	If Pref = "" Then
		Pref = "0"
	End If
	Dim Meisho
	Meisho = ConvProhiStr(BASPObj.Form(BinData, "Meisho"))
	Dim Kakaku
	Kakaku = BASPObj.Form(BinData, "Kakaku")
	Dim ShohiZei
	ShohiZei = BASPObj.Form(BinData, "ShohiZei")
	Dim Hozon
	Hozon = BASPObj.Form(BinData, "Hozon")
	Dim HozonTemp
	HozonTemp = BASPObj.Form(BinData, "HozonTemp")
	Dim Osusume
	Osusume = BASPObj.Form(BinData, "Osusume")
	Dim OrderMax
	OrderMax = BASPObj.Form(BinData, "OrderMax")
	Dim Shokai
	Shokai = Replace(ConvProhiStr(BASPObj.Form(BinData, "Shokai")), vbCrLf, "<br>")
	Dim Biko
	Biko = Replace(ConvProhiStr(BASPObj.Form(BinData, "Biko")), vbCrLf, "<br>")
	Dim NoCart
	NoCart = BASPObj.Form(BinData, "NoCart")
	Dim NoCartURL
	NoCartURL = BASPObj.Form(BinData, "NoCartURL")
	Dim Publish
	Publish = BASPObj.Form(BinData, "Publish")
	Dim Publishing
	Publishing = BASPObj.Form(BinData, "Publishing")
	Dim MotoImageFile(3)
	MotoImageFile(1) = BASPObj.Form(BinData, "MotoImageFile1")
	MotoImageFile(2) = BASPObj.Form(BinData, "MotoImageFile2")
	MotoImageFile(3) = BASPObj.Form(BinData, "MotoImageFile3")
	Dim ImageFileListView
	ImageFileListView = BASPObj.Form(BinData, "ImageFileListView")
	Dim ImageDelete(3)
	ImageDelete(1) = BASPObj.Form(BinData, "ImageDelete1")
	ImageDelete(2) = BASPObj.Form(BinData, "ImageDelete2")
	ImageDelete(3) = BASPObj.Form(BinData, "ImageDelete3")

	If ImageDelete(1) = "1" And ImageFileListView = "1" Or ImageDelete(2) = "1" And ImageFileListView = "2" Or ImageDelete(3) = "1" And ImageFileListView = "3" Then
		ImageFileListView = "" '未設定に戻す(表示側で自動選択させる)
	End If

	Dim Delete
	Delete = BASPObj.Form(BinData, "Delete")

	Dim ActShopID
	ActShopID = BASPObj.Form(BinData, "ActShopID")
	If LCase(ActShopID) <> LCase(GB_ShopAdmin) Then
		Response.Write("別のウィンドウまたは別のタブページで現在と異なるIDでログインしました。<br>" & vbCrLf)
		Response.Write("同一PC上で複数のIDでログインすることはできません。<br>" & vbCrLf)
		Response.Write("<br>" & vbCrLf)
		Response.Write("<a href=""shopadminmenu.asp"">戻る</a>" & vbCrLf)
		Exit Sub
	End If


	'削除
	If Delete <> "" Then
		Query = " DELETE FROM TF商品 WHERE ショップID = " & GB_ShopAdmin & " AND 商品ID = " & Delete & " "
		Set Content = SQLQuery(Query, SQLServer, DatabaseName, DatabaseUser, DatabasePass)
		On Error Resume Next
			'画像の削除
			Call fso.DeleteFile(Server.MapPath(ImageFolder) & "\" & Delete & "-*.*", True)	'商品ID-枝番
			Call fso.DeleteFile(Server.MapPath(ImageFolder) & "\" & Delete & ".*", True)	'商品IDのみ(旧仕様)
		On Error Goto 0
		Response.Redirect(HomeAliasSL & "shopshelf.asp?Order=" & Order & "&ActShopID=" & ActShopID) '商品一覧に戻る
	End If

	Dim ItemReturn
	ItemReturn = True '商品詳細に戻るフラグ


	Dim ImageCnt

	'元画像を退避(コピー)※ソース画像のみ
	For ImageCnt = 1 To 3
		If MotoImageFile(ImageCnt) <> "" Then
			On Error Resume Next
				Call fso.CopyFile(Server.MapPath(ImageFolder) & "\" & MotoImageFile(ImageCnt), Server.MapPath(ImageFolder) & "\Temp" & ImageCnt & ".img", True)
			On Error Goto 0
		End If
	Next



	If Item <> "" Then

		'商品画像トグル用
		Dim ActFileNum(3)
		ActFileNum(1) = ""
		ActFileNum(2) = ""
		ActFileNum(3) = ""

		If Not(IsNumeric(Item)) Then
			'新規採番
			Item = 0
			Set Content = QueryGetItemAdmin(GB_ShopAdmin, "", "", "", Order, SQLServer, DatabaseName, DatabaseUser, DatabasePass)
			Do While Not(Content.BOF Or Content.EOF)
				If Content.Fields("商品ID") > Item Then
					Item = Content.Fields("商品ID")
				End If
				Content.MoveNext
			Loop
			Item = "" & (Item + 1)
		Else
			'商品画像トグル用
			Set Content = QueryGetItemAdmin(GB_ShopAdmin, Item, "", "", Order, SQLServer, DatabaseName, DatabaseUser, DatabasePass)
			If Not(Content.BOF Or Content.EOF) Then
				ActFileNum(1) = "" & Content.Fields("商品画像トグル1")
				ActFileNum(2) = "" & Content.Fields("商品画像トグル2")
				ActFileNum(3) = "" & Content.Fields("商品画像トグル3")
			End If
		End If

		'画像フォルダ作成(商品IDをファイル名にするため商品IDフォルダは不要)
		'ImageFolder = ImageFolder & Item & "/"
'Response.Write(ImageFolder)
'Exit Sub
		'If Not(fso.FolderExists(Server.MapPath(ImageFolder))) Then
		'	fso.CreateFolder(Server.MapPath(ImageFolder))
		'End If

		Dim FileExt
		Dim NewOutFile
		Dim TmpOutFile

	For ImageCnt = 1 To 3

		FileSize = BASPObj.FormFileSize(BinData, "ImageFile" & ImageCnt)

		If ImageDelete(ImageCnt) = "1" Then
			FileName(ImageCnt) = ""
			On Error Resume Next
				'画像の削除
				Call fso.DeleteFile(Server.MapPath(ImageFolder) & "\" & Item & "-" & ImageCnt & "*.*", True)	'商品ID-枝番
			On Error Goto 0
			MotoImageFile(ImageCnt) = ""

		ElseIf FileSize > 0 Then

			On Error Resume Next
				Call fso.DeleteFile(Server.MapPath(ImageFolder) & "\" & Item & "-" & ImageCnt & ".*", True) '同一商品IDのファイルを全削除
			On Error Goto 0
			FileName(ImageCnt) = BASPObj.FormFileName(BinData,"ImageFile" & ImageCnt)
			FileName(ImageCnt) = Mid(FileName(ImageCnt), InStrRev(FileName(ImageCnt), "\") + 1)	'パスからファイル名を取り出す
			FileExt = Mid(FileName(ImageCnt), InStrRev(FileName(ImageCnt), ".") + 1) 'ファイル名から拡張子を取り出す
			FileName(ImageCnt) = Item & "-" & ImageCnt & "." & FileExt 'ファイル名を「商品ID-枝番.拡張子」に変換
			l1 = BASPObj.FormSaveAs(BinData, "ImageFile" & ImageCnt, Server.MapPath(ImageFolder) & "\" & FileName(ImageCnt))
'Response.Write(Server.MapPath(ImageFolder) & "\" & FileName(ImageCnt))
'Exit Sub

			'画像処理
			Dim Result
			'画像サイズを変更
			Dim ImgWidth
			Dim ImgHeight
			Dim Hiritsu
			'画像サイズを取得
			If LCase(Right(FileName(ImageCnt), 4)) = ".gif" Then
				'GIFのみLeadToolsではライセンスの関係で処理出来ないのでDoodle2コンポーネントを利用
				Result = DdleObj.LoadFromFile(Server.MapPath(ImageFolder) & "\" & FileName(ImageCnt))
				If Result = 0 Then
					ImgWidth = DdleObj.Width
					ImgHeight = DdleObj.Height
				End If
			Else
				Result = LeadObj.Load(Server.MapPath(ImageFolder) & "\" & FileName(ImageCnt), 0, 0, 1)
				If Result = 0 Then
					ImgWidth = LeadObj.BitmapWidth
					ImgHeight = LeadObj.BitmapHeight
				End If
			End If
			If ImgWidth > 600 Or ImgHeight > 600 Then
				'600x600に対して画像の縦横比のいずれか広い側の比率を取得する
				If ImgWidth / ImgHeight > 600 / 600 Then
					Hiritsu = ImgWidth / 600 '600x600に対して画像の縦横比の横が広い場合
				Else
					Hiritsu = ImgHeight / 600 '600x600に対して画像の縦横比の縦が広い場合
				End If
				'比率から内接サイズを計算しグローバル変数に代入(小数点以下四捨五入)
				InscribedWidth = Fix((ImgWidth / Hiritsu) + 0.5)
				InscribedHeight = Fix((ImgHeight / Hiritsu) + 0.5)

				'サイズを600x600に収まるよう縮小
				If LCase(Right(FileName(ImageCnt), 4)) = ".gif" Then
					'GIFのみLeadToolsではライセンスの関係で処理出来ないのでDoodle2コンポーネントを利用
					'サイズ変更
					Result = DdleObj.Stretch(InscribedWidth, InscribedHeight, True, True) '第4引数はFalseで内接リサイズだが余白が生じるだけなのでダメ
					If Result = 0 Then
						'画像を保存
						Result = DdleObj.SaveToFile(Server.MapPath(ImageFolder) & "\" & FileName(ImageCnt))
					End If
				Else
					'サイズ変更
					Result = LeadObj.Size(InscribedWidth, InscribedHeight, 4)
					If Result = 0 Then
						'全てJPEGで保存(強制)
						Dim NewFileName
						NewFileName = Left(FileName(ImageCnt), Len(FileName(ImageCnt)) - 4) & ".jpg"
						Result = LeadObj.Save(Server.MapPath(ImageFolder) & "\" & NewFileName, 10, 24, 24, 0) '第4引数が圧縮率
						'元がJPEG以外なら元ファイルを削除
						If Result = 0 And LCase(Right(FileName(ImageCnt), 4)) <> ".jpg" Then
'Response.Write("保存成功")
'Exit Sub
							On Error Resume Next
								'元ファイルを削除
								Call fso.DeleteFile(Server.MapPath(ImageFolder) & "\" & FileName(ImageCnt), True)
							On Error Goto 0
							FileName(ImageCnt) = NewFileName
						End If
					End If
				End If
			End If

			'ビットマップはJPEG変換
'			If LCase(Right(FileName(ImageCnt), 4)) = ".bmp" Or LCase(Right(FileName(ImageCnt), 4)) = ".png" Then
'				Result = LeadObj.Load(Server.MapPath(ImageFolder) & "\" & FileName(ImageCnt), 0, 0, 1)
'				If Result = 0 Then
'					Dim NewFileName
'					NewFileName = Left(FileName(ImageCnt), Len(FileName(ImageCnt)) - 4) & ".jpg"
'					Result = LeadObj.Save(Server.MapPath(ImageFolder) & "\" & NewFileName, 10, 24, 24, 0) '第4引数が圧縮率
'					If Result = 0 Then
'						On Error Resume Next
'							Call fso.DeleteFile(Server.MapPath(ImageFolder) & "\" & FileName(ImageCnt), True)
'							On Error Goto 0
'						FileName(ImageCnt) = NewFileName
'					End If
'				End If
'			End If

			'ファイルサイズ判定
			If FileName(ImageCnt) <> "" Then
				If fso.GetFile(Server.MapPath(ImageFolder) & "\" & FileName(ImageCnt)).Size > MaxFileSize * 1024 Then
					On Error Resume Next
						Call fso.DeleteFile(Server.MapPath(ImageFolder) & "\" & FileName(ImageCnt), True)
						'元画像を書き戻す
						If MotoImageFile(ImageCnt) <> "" Then
							Call fso.CopyFile(Server.MapPath(ImageFolder) & "\Temp" & ImageCnt & ".img", Server.MapPath(ImageFolder) & "\" & MotoImageFile(ImageCnt), True)
						End If
					On Error Goto 0
					Response.Write("ファイルサイズが大きすぎます。<br><br>")
					Response.Write("受付可能なファイルサイズは" & MaxFileSize & "KByteまでです。<br><br>")
					Response.Write("<a href=""JavaScript:history.go(-1)"">戻る</a>")
					Exit Sub
				End If
			End If


			'サムネイルを作成

			If ActFileNum(ImageCnt) = "A" Then
				ActFileNum(ImageCnt) = "B"
			ElseIf ActFileNum(ImageCnt) = "B" Then
				ActFileNum(ImageCnt) = "C"
			Else 'If ActFileNum(ImageCnt) = "C" Or ActFileNum(ImageCnt) = "" Then
				ActFileNum(ImageCnt) = "A"
			End If

			NewOutFile = Left(FileName(ImageCnt), InStrRev(FileName(ImageCnt), ".") - 1)	'ファイル名を取り出す
			FileExt = Mid(FileName(ImageCnt), InStrRev(FileName(ImageCnt), ".") + 1) '拡張子を取り出す
			'商品詳細
			TmpOutFile = NewOutFile & "_" & ImageXItemMain & "_" & ImageYItemMain & "_" & ActFileNum(ImageCnt) & "." & FileExt '出力ファイル名「元ファイル名_横_縦_ラベル.拡張子」
			Call InscribedImageOut(ImageFolder & FileName(ImageCnt), Server.MapPath(ImageFolder) & "\" & TmpOutFile, ImageXItemMain, ImageYItemMain)
			'商品一覧
			TmpOutFile = NewOutFile & "_" & ImageXItemThumb & "_" & ImageYItemThumb & "_" & ActFileNum(ImageCnt) & "." & FileExt '出力ファイル名「元ファイル名_横_縦_ラベル.拡張子」
			Call InscribedImageOut(ImageFolder & FileName(ImageCnt), Server.MapPath(ImageFolder) & "\" & TmpOutFile, ImageXItemThumb, ImageYItemThumb)
			'おすすめ商品
			TmpOutFile = NewOutFile & "_" & ImageXItemOsusume & "_" & ImageYItemOsusume & "_" & ActFileNum(ImageCnt) & "." & FileExt '出力ファイル名「元ファイル名_横_縦_ラベル.拡張子」
			Call InscribedImageOut(ImageFolder & FileName(ImageCnt), Server.MapPath(ImageFolder) & "\" & TmpOutFile, ImageXItemOsusume, ImageYItemOsusume)
			'新着商品
			TmpOutFile = NewOutFile & "_" & ImageXItemNew & "_" & ImageYItemNew & "_" & ActFileNum(ImageCnt) & "." & FileExt '出力ファイル名「元ファイル名_横_縦_ラベル.拡張子」
			Call InscribedImageOut(ImageFolder & FileName(ImageCnt), Server.MapPath(ImageFolder) & "\" & TmpOutFile, ImageXItemNew, ImageYItemNew)

		End If

	Next



		'旧仕様対策(存在しないサムネイルを生成)
		For ImageCnt = 1 To 3
			Dim TmpMotoFile
			TmpMotoFile = ""
			If MotoImageFile(ImageCnt) <> "" Then
				TmpMotoFile = MotoImageFile(ImageCnt)
			End If
			If FileName(ImageCnt) <> "" Then
				TmpMotoFile = FileName(ImageCnt)
			End If
			If TmpMotoFile <> "" And ActFileNum(ImageCnt) = "" Then
				ActFileNum(ImageCnt) = "A"
				NewOutFile = Left(TmpMotoFile, InStrRev(TmpMotoFile, ".") - 1)	'ファイル名を取り出す
				FileExt = Mid(TmpMotoFile, InStrRev(TmpMotoFile, ".") + 1) '拡張子を取り出す
				'商品詳細
				TmpOutFile = NewOutFile & "_" & ImageXItemMain & "_" & ImageYItemMain & "_" & ActFileNum(ImageCnt) & "." & FileExt '出力ファイル名「元ファイル名_横_縦_ラベル.拡張子」
				Call InscribedImageOut(ImageFolder & TmpMotoFile, Server.MapPath(ImageFolder) & "\" & TmpOutFile, ImageXItemMain, ImageYItemMain)
				'商品一覧
				TmpOutFile = NewOutFile & "_" & ImageXItemThumb & "_" & ImageYItemThumb & "_" & ActFileNum(ImageCnt) & "." & FileExt '出力ファイル名「元ファイル名_横_縦_ラベル.拡張子」
				Call InscribedImageOut(ImageFolder & TmpMotoFile, Server.MapPath(ImageFolder) & "\" & TmpOutFile, ImageXItemThumb, ImageYItemThumb)
				'おすすめ商品
				TmpOutFile = NewOutFile & "_" & ImageXItemOsusume & "_" & ImageYItemOsusume & "_" & ActFileNum(ImageCnt) & "." & FileExt '出力ファイル名「元ファイル名_横_縦_ラベル.拡張子」
				Call InscribedImageOut(ImageFolder & TmpMotoFile, Server.MapPath(ImageFolder) & "\" & TmpOutFile, ImageXItemOsusume, ImageYItemOsusume)
				'新着商品
				TmpOutFile = NewOutFile & "_" & ImageXItemNew & "_" & ImageYItemNew & "_" & ActFileNum(ImageCnt) & "." & FileExt '出力ファイル名「元ファイル名_横_縦_ラベル.拡張子」
				Call InscribedImageOut(ImageFolder & TmpMotoFile, Server.MapPath(ImageFolder) & "\" & TmpOutFile, ImageXItemNew, ImageYItemNew)
			End If
		Next


		Query = "exec SPF商品更新 " & GB_ShopAdmin & ", " & Item & ""
		Query = Query & ", '" & Kaihatsu & "'"
		If Cat <> "" Then
			Query = Query & ", " & Cat & ""
		Else
			Query = Query & ", null"
		End If
		If SubCat <> "" Then
			Query = Query & ", " & SubCat & ""
		Else
			Query = Query & ", null"
		End If
		Query = Query & ", " & Area & " "
		Query = Query & ", " & Pref & " "
		Query = Query & ", '" & Meisho & "' "
		If Kakaku <> "" Then
			Query = Query & ", " & Kakaku & ""
		Else
			Query = Query & ", null"
		End If
		Query = Query & ", '" & ShohiZei & "' "
		Query = Query & ", '" & Hozon & "' "
		If HozonTemp <> "" Then
			Query = Query & ", " & HozonTemp & ""
		Else
			Query = Query & ", null"
		End If
		If OrderMax <> "" Then
			Query = Query & ", " & OrderMax & ""
		Else
			Query = Query & ", null"
		End If
		Query = Query & ", '" & Shokai & "' "
		For ImageCnt = 1 To 3
			If FileName(ImageCnt) <> "" Then
				Query = Query & ", '" & FileName(ImageCnt) & "' "
			Else
				Query = Query & ", '" & MotoImageFile(ImageCnt) & "' "
			End If
			Query = Query & ", '" & ActFileNum(ImageCnt) & "' "
		Next
		Query = Query & ", '" & ImageFileListView & "', '" & Biko & "', '" & NoCart & "', '" & NoCartURL & "', '" & Publish & "' "
'Response.Write(Query)
'Exit Sub
		Set Content = SQLQuery(Query, SQLServer, DatabaseName, DatabaseUser, DatabasePass)

		Query = "exec SPF商品おすすめ更新 " & GB_ShopAdmin & ", " & Item & ", '" & Osusume & "'"
		Set Content = SQLQuery(Query, SQLServer, DatabaseName, DatabaseUser, DatabasePass)

	End If

	'退避ファイルの削除
	For ImageCnt = 1 To 3
		On Error Resume Next
			Call fso.DeleteFile(Server.MapPath(ImageFolder) & "\Temp.img", True)
			Call fso.DeleteFile(Server.MapPath(ImageFolder) & "\Temp" & ImageCnt & ".img", True)
		On Error Goto 0
	Next



	'商品公開フラグ
	If Publishing = "1" Then
		If Item <> "" Then
			'単一商品の公開(非利用)
			Query = "exec SPF商品公開 " & GB_ShopAdmin & ", " & Item & ", '" & Publish & "' "
	'Response.Write(Query)
	'Exit Sub
			Set Content = SQLQuery(Query, SQLServer, DatabaseName, DatabaseUser, DatabasePass)
		Else
			'商品全体の公開
			Query = "exec SPMショップ商品公開 " & GB_ShopAdmin & ", '" & Publish & "' "
	'Response.Write(Query)
	'Exit Sub
			Set Content = SQLQuery(Query, SQLServer, DatabaseName, DatabaseUser, DatabasePass)
			ItemReturn = False
		End If
	End If


	'If ItemReturn Then
		Response.Redirect(HomeAliasSL & "shopshelf.asp?Order=" & Order & "&Item=" & Item & "&" & TimeUniq() & "&ActShopID=" & ActShopID) '単一商品に戻る
	'Else
	'	Response.Redirect(HomeAliasSL & "shopshelf.asp?Order=" & Order)
	'End If

End Sub
%>