#!/bin/sh

[ ! "${acct}" ] && exit
[ ! -d "acct/${acct}" ] && exit
[ ! "${gram}" ] && exit
gramdte="$( echo "${gram}" | cut -d "." -f 1 )"; export gramdte
grammdy="$( date -r ${gramdte} +%m-%d-%Y )"; export grammdy
[ ! "${subfx}" ] && exit
[ ! -f "${subfx}" ] && exit
[ ! "${msgfx}" ] && exit
[ ! -f "${msgfx}" ] && exit
[ ! "${addfx}" ] && exit
[ ! -f "${addfx}" ] && exit
[ ! "${pczfx}" ] && exit

headpx="tmp/mkpcz.$$.headpx.png"; export headpx
logopx="tmp/mkpcz.$$.logopx.png"; export logopx
cardlogofx="card-logo.gif"; export cardlogofx
profilefx="profile.jpg"; export profilefx
labpx="tmp/mkpcz.$$.labpx.gif"; export labpx
subpx="tmp/mkpcz.$$.subpx.gif"; export subpx
msgpx="tmp/mkpcz.$$.msgpx.gif"; export msgpx
retqrpx="tmp/mkpcz.$$.retqrpx.gif"; export retqrpx
addpx="tmp/mkpcz.$$.addpx.gif"; export addpx
mediapx="tmp/mkpcz.$$.mediapx.jpg"; export mediapx
barpx="tmp/mkpcz.$$.barpx.jpg"; export barpx

####### make sub
msgy=125; export msgy
cp sub-blank.gif ${subpx}
[ -s ${subfx} ] && {
convert \
-size 800 \
-density 150 \
-fill black \
-background white \
-font Courier-Bold \
-pointsize 8 \
-font NewCenturySchlbk-Bold \
caption:@${subfx} \
-trim \
-bordercolor white \
-border 5 \
-transparent white \
${subpx}

subh=$( convert ${subpx} -format "%h" info: ); export subh
msgy="$(( 125 + ${subh} ))"; export msgy
}

##### make retqrpx
./mkretqrpx 2>&1

###### make address
cat ${addfx} |
cut -d "~" -f 1-7 |
sed -e "
s/~/+/
s/~/+/
s/~/+/
s/~/ /
s/~/ /
s/~/+/
" |
tr -s "+" |
tr "+" "\n" |
tr -s " " |
sed -e "
s~(NAME)~\&~p
s~(AMP)~\&~p
s~^ ~~
s~ $~~
" |
convert \
-size 400 \
-density 150 \
-background white \
-fill black \
-font Helvetica-Bold \
-pointsize 10 \
-interline-spacing 3 \
caption:@- \
-trim \
-bordercolor white \
-border 15 \
${addpx}

addw=$( convert ${addpx} -format "%w" info: ); export addw
[ "${addw}" -lt 300 ] && addw=300
addh=$( convert ${addpx} -format "%h" info: ); export addh
ax=$(( 885 - ${addw} )); export ax
ay=$(( 531 - ${addh} )); export ay
labx=0; export labx
laby=500; export laby
labw=$(( ${ax} - 1 )); export labw

##### make msg px
msgw=$(( ${ax} - 20 )); export msgw
[ "${msgw}" -gt 700 ] && msgw=700
[ ! "${msgw}" ] && msgw=700
msgh="$(( 500 - ${msgy} ))"; export msgh

for ps in 18 14 10 8 6
do
cat ${msgfx} |
sed -e "
s~\&#....;~ ~g
s~\%B4~\'~g
" |
tr "+" "\n" |
uniq |
convert \
-size ${msgw} \
-density 150 \
-background white \
-fill black \
-font NewCenturySchlbk-Roman \
-pointsize ${ps} \
caption:@- \
-trim \
-bordercolor white \
-border 5 \
-transparent white \
${msgpx}
h=$( convert ${msgpx} -format "%h" info: ); export h
[ "${h}" -lt "${msgh}" ] && {
break
}
done
h=$( convert ${msgpx} -format "%h" info: ); export h
[ "${h}" -lt "${msgh}" ] && {
msgdif="$(( ${msgh} - ${h} ))"; export msgdif
msginc="$(( ${msgdif} / 3 ))"; export msginc
msgy="$(( ${msgy} + ${msginc} ))"
}

##### make media px
convert \
-density 150 \
-size 450x40 \
canvas:Violet \
-fill black \
-font NewCenturySchlbk-Bold \
-pointsize 12 \
-draw "text 20,30 'WorldVote web'" \
${mediapx}

####### make lab
convert -size 500x45 \
canvas:Cyan \
-fill black \
-font Courier-Bold \
-pointsize 20 \
-draw "text 15,20 'WorldVote.com/?${gram}'" \
-draw "text 15,40 'Date: $( date -r ${gramdte} +%D-%T )'" \
${labpx}

###### make mail bar
lastno="$( <${addfx} tr " .,+" "\n" |
tr -c -d "[0-9]\n" |
grep "^[0-9][0-9][0-9][0-9][0-9]$
^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$" |
tail -1 )"; export lastno
zip="$( echo "${lastno}" | cut -c 1-5 )"; export zip
[ ! "${zip}" ] && zip="     "
zip4="$( echo "${lastno}" | cut -c 6-9 )"; export zip4
[ ! "${zip4}" ] && zip4="    "
zipr="$( echo "${lastno}" | cut -c 10-11 )"; export zipr
[ ! "${zipr}" ] && zipr="  "
route="${zip}${zip4}${zipr}"; export route
barid="00"; export barid
servtype="310"; export servtype
mid="901343300"; export mid

#### get seq
seq="$( cat mkbar.seq )"
echo -n "$(( ${seq} + 1 ))" >mkbar.seq

bartxt="$( echo "${barid}${servtype}${mid}${seq}${route}" |
./uspsbar )"; export bartxt

convert \
-size 900x70 \
-density 150 \
canvas:white \
-fill black \
-font USPSIMBStandard.ttf \
-pointsize 16 \
-draw "text 350,35 '${bartxt}'" \
${barpx}

#### get logo
[ -s "acct/${acct}/photobook/card-logo.jpg" ] && {
cardlogofx="acct/${acct}/photobook/card-logo.jpg"
}
[ -s "acct/${acct}/photobook/profile.jpg" ] && {
profilefx="acct/${acct}/photobook/profile.jpg"
}

convert \
${cardlogofx} \
-resize 450x110\> \
${logopx}

convert \
-density 150 \
-size 900x200 \
canvas:white \
-draw "image SrcOver 0,0 0,0 ${logopx}" \
-draw "image SrcOver 481,2 150,150 ${profilefx}" \
${headpx}

##### put it all on the card pcz
convert \
-density 150 \
-size 900x600 \
canvas:white \
-fill black \
-draw "image SrcOver 0,0 0,0 ${headpx}" \
-font NewCenturySchlbk-Roman \
-pointsize 8 \
-draw "text 10,123 'From: ${acct}'" \
-draw "image SrcOver 5,125 0,0 ${subpx}" \
-draw "image SrcOver 5,${msgy} 0,0 ${msgpx}" \
-draw "image SrcOver ${labx},${laby} ${labw},30 ${labpx}" \
-draw "image SrcOver ${labw},180 0,0 ${mediapx}" \
-draw "image SrcOver ${ax},220 0,0 ${retqrpx}" \
-draw "image SrcOver ${ax},${ay} 0,0 ${addpx}" \
-fill black \
-draw "line $(( ${ax} - 1 )),180 $(( ${ax} - 1 )),530" \
-draw "image SrcOver 0,531 0,0 ${barpx}" \
-draw "image SrcOver 640,5 0,0 card-postage.gif" \
-fill blue \
-font Courier-Bold \
-pointsize 8 \
-draw "text 890,10 '+'" \
-draw "text 0,600 '+'" \
${pczfx}

##### clear tmp work files
rm -f ${headpx}
rm -f ${logopx}
rm -f ${subpx}
rm -f ${msgpx}
rm -f ${retqrpx}
rm -f ${addpx}
rm -f ${labpx}
rm -f ${mediapx}
rm -f ${barpx}
