/* 1oo% ANSI-Order-Door v1.1 - by Dreamer/Supplex/1oo% */

options results ; signal on SYNTAX ;/* signal on ERROR ; signal on IOERR*/
tr=transmit ; se=sendstring ; gc=getchar ; gu=getuser ; mg=maygetchar
a='rexxsupport.library';if ~show('l',a) then if ~addlib(a,0,-30) then exit

/******************************* Start Prog ********************************/

gu 1; Handl=result
gu 40; Accnr=result
gu 23; port=result
gu 1311992; path=result
artnr=0

changewhere "1oo% OrderDoor"

/***************************** reading Config ******************************/

open(cfg,path"Order.cfg")

call getline
do forever
	artnr=artnr+1; x=0
	Art.artnr.Name=line
	call getline; Art.artnr.accnr=line
	call getline; Art.artnr.comment=line
	call getline; Art.artnr.cols=line
	call getline; Art.artnr.ibmtopaz=line
	call getline
	if left(line,2)="==" then leave
	if artnr=9 then leave
end

close(cfg)
maxart=artnr

/***************************** ask for Artist ******************************/

tr "@4*0"path"sys.order.logo}n1"
tr "c2- -- --c6-c7[ c5ChOoZe YeR StaR... c7]c6-c2------------------------------------------ -- -n1"

tr "c3 nR.c4. c2ARtiSt                  c4. c7ColZ c4. c7ChaRSet c4. c5CoMMeNtZ"
tr "c4- --+-------------------------+------+---------+---------------------------- -"
do y=1 to artnr
	tr "  c3"y".4}c4| c2"left(Art.y.Name,25)".30}c4| c6"center(Art.y.cols,5)"c4| c6"center(Art.y.ibmtopaz,8)"c4|.49}c7"left(Art.y.comment,27)
end
tr "c4- --^-------------------------^------^---------^---------------------------- -"
tr "c4.7}ColZ: 8, 16, BotH oR NoNe -^       ^- ChaRSeT: toPaZ, iBM oR bOtH"

se "n1c6.7}fRoM WhiCh aRtiSt dO Ya WaNt tO oRdeR aN aSCii/aNSi? c2[c71c6-c7"artnr"c6, c7Ac6llc2]c7 "

Label1:
getchar; char=result
if (char="###PANIC") | (upper(char)="Q") | (c2d(char)=13) then do; tr char"@0"; exit; end
if upper(char)="A" then do
	all=1; artnr=0; Art.artnr.cols="ALL"; Art.artnr.ibmtopaz="BOTH"
	signal Labela
	end
if (char<1) | (char>artnr) then signal label1
artnr=char

labela:
tr char

clrlines=8+maxart; call ClrScr;

/*************************** color questionaire ****************************/

tr "c2- -- --c6-c7[ c5Da CoLoRZ Of dA rAiNbOW! c7]c6-c2------------------------------------ -- -n1"

if upper(left(Art.artnr.cols,3))="ALL" then do
	tr ">17}c4.--- -- - c6HoW MaNY ColoRZ dO Ya WiSh? c4--- -- -"
	tr ">17}|"
	tr ">17}|              c7[c31c7]   c68 c2CoLoRZ"
	tr ">17}c4`-------- -- - c7[c32c7]  c616 c2CoLoRZ   c4- -- --------."
	tr ">17}               c7[c33c7]  c6PlAiNc2 aSCii              c4|"
	tr ">17}                                             |"
	se ">17}c6YoUR ChOiZe:   c4- -- --- ---------------------'c7<33}"

	maxnum=3; call getinput

	if char=1 then colz=8
	if char=2 then colz=16
	if char=3 then colz="plain"
	clrlines=9; call ClrScr;
	end
if (left(Art.artnr.cols,1)="8")|(left(Art.artnr.cols,2)="16") then do
	tr ">17}c4.------- -- - c6dO Ya WiSh ColoRZ? c4-------- -- -"
	tr ">17}|"
	tr ">17}c4|_____ __ _ c7[c31c7]  c2YeZ, c6"Art.artnr.cols"c2 CoLoRZ!.51}c4_ __ ______"
	tr ">17}            c7[c32c7]  c2No, c6PlAiN c2aSCii!            c4|"
	tr ">17}                                             |"
	se ">17}c6YoUR ChOiZe:   c4- -- --- ---------------------'c7<33}"

	maxnum=2; call getinput

	if char=1 then colz=Art.artnr.cols
	if char=2 then colz="plain"
	clrlines=8; call ClrScr;
	end
else colz="plain"


/************************** Charset questionaire ***************************/

if left(upper(Art.artnr.ibmtopaz),4)="BOTH" then do
	/* tr "f1*0"path"order.logo}n1" */
	tr "c2- -- --c6-c7[ c5dA SPaRkEliNG toPaZ aNd dA duMb iBM... c7]c6-c2---------------------- -- -n1"
	tr ">17}c4.---- -- - c6WHiCh ChaRSet dO Ya WiSh ? c4--- -- -"
	tr ">17}|"
	tr ">17}c4|_______ __ _ c7[c31c7]  c2iBM-ChaRSeT .51}c4_ __ ______"
	tr ">17}              c7[c32c7]  c2toPaZ-ChaRSeT             c4|"
	tr ">17}                                             |"
	se ">17}c6YoUR ChOiZe:   c4- -- --- ---------------------'c7<33}"

	maxnum=2; call getinput

	if char=1 then charset="IBM"
	if char=2 then charset="TOPAZ"
	clrlines=8; call ClrScr;
end
else charset=Art.artnr.ibmtopaz

/***************************** description *********************************/

tr "c2- -- --c6-c7[ c5SeNd A SMall CoMMeNt tO YouR StAR! c7]c6-c2-------------------------- -- -n1"
tr "n1c2.11}eNtER deSCRiPtioN. YoU haVe 4 liNeS. eNteR oN blANk eXits."
tr "n1c4>4}- -- c7[c6------------------------------------------------------------c7]c4 -- -"
do x=1 to 4
	tr ">9}c5:                                                            :"
end
tr "c4>4}- -- c7[c6------------------------------------------------------------c7]c4 -- -"

tr "^5c7>10}i32768 60}"
getuser 70; line.1=result
if line.1 = "" then do
	tr "n5c3"center("No deSCRiPtioN - No oRdeR!",78)"@0"
	exit
end
do x=2 to 4
	tr ">10}i32768 60}"
	getuser 70; line.x=result
	if (line.x="")&(x~=4) then addkeys d2c(13)
end


/************************** write mail call *********************************/

if artnr ~= 0 then do
	loadscratch Art.artnr.accnr
	getscratch 1; handle=result
	savescratch (-Art.artnr.accnr)

	se "n2c2>24}SeNd tHiS tO c3"handle"c2? c7[c6YeZc7] ?1"
	getuser 70; if result=0 then do; tr"@0"; exit; end

	clrlines=13; call ClrScr;

	tr "c2- -- --c6-c7[ c5ViA dEeP MAil... c7]c6-c2-------------------------------------------- -- -n1"

	se "n1>27}c6SeNdiNG MAil c7[c3.c4...........c7]<12}c3"
	call writemail
	tr "n2>25}c2MAil SeNt - HaVe a NiCe daY...@0"
	end
else do

	se "n2c2>24}SeNd tHiS tO aLl aRtiStS? c7[c6YeZc7] ?1"
	getuser 70; if result=0 then do; tr"@0"; exit; end

	clrlines=13; call ClrScr;
	tr "c2- -- --c6-c7[ c5ViA dEeP MAil... c7]c6-c2-------------------------------------------- -- -n1"

	do artnr=1 to maxart
		loadscratch Art.artnr.accnr
		getscratch 1; handle=result
		savescratch (-Art.artnr.accnr)
		handleX=left(handle,15)

		se "n1>16}c6SeNdiNG MAil tO c2"handleX" c7[c3.c4..........c7]<12}c3"
		call writemail
	end
	tr "n2>25}c2MAilS SeNt - HaVe a NiCe daY...@0"
end

tr x2c(196E32113E31307D1963357468614E6B20596F7520666F52207553694E472074486520196336316F6F25206F526465522D644F6F5219633520625920645265614D65522F53582F316F6F25194030)

exit

/************************* write mail subroutine ****************************/

writemail:

open(out,"ram:OrderMail"port,'W')
writeln(out,"c7Hi c6"handle" c7!!"); se "."
writeln(out,"n1c7There is an ANSI-order from c6"handl"c7 (Acc Nr. c6"accnr" c7):"); se "."
writeln(out,"n1c7He wishes a c2"Charset"c7 - style ANSI/ASCII in c2"colz" c7colors."); se "."

if all=1 then do
	writeln(out,"c7(If You don't support these wishes, just ignore this mail!)n1")
end

writeln(out,"c7He left this description for You:n1"); se "."

do x=1 to 4
	writeln(out,".8}c2: c6"line.x".1}>70}c2:"); se "."
end

writeln(out,"n2c4>18}(This automail was created using the 1oo% ANSI-Order-Door!)n1"); se "."
close(out)

LoadEditor "ram:OrderMail"port; se "."
SetMailSubj "aNSi/aSCii-oRdeR!"
WriteMail Art.artnr.accnr
if ~result then do; transmit "n2c1"center("Error occured - Mail not sent!",78); exit; end
se "."
delete("ram:OrderMail"port)
return

/* Colz: 8 , 16 , plain */
/* Charset: IBM , TOPAZ */

/***************************** procedures **********************************/

getline:
do forever
	line=readln(cfg)
	if (line~="") then do
		if left(line,2)~="//" then leave
	end
	if eof(cfg) then leave
end
return

getinput:
getchar; char=result
if (char="###PANIC") | (upper(char)="Q") | (c2d(char)=13) then do; tr char"@0"; exit; end
if (char<1) | (char>maxnum) then signal getinput
tr char
return

Clrscr:
se "n1s1      s0^2"
do z=1 to clrlines
	se "                                                                             s1 ^1.0s0"
end
return

SYNTAX:;ERROR:;IOERR:;e1=' c9Errorcf: ca'rc' cf(ca'errortext(rc)'cf)'
e2='  c9Linecf: ce'left(sigl,4)'c9Filecf:';gu 1311992;a=result
gu 1311960;b=result;c='cb"ce'a||b'cb"';e2=e2' 'c;tr e1;tr e2;logentry e1
logentry e2;e=sourceline(sigl);do while e~='';e3='c9Sourcecf: cd'
e3=e3||left(e,37);tr e3;logentry e3;e=substr(e,38);end;bufferflush;exit
