Because of the wicked thunderstorms in the northeast US, I was alternately without power or cable/internet for several hours and was unable to post my lowest score of 326. I've included those enhancements as comments in the code, marked by "LATE! -# strokes". Damn weather made us postpone my daughter's 12th birthday party today!

Somebody asked for commented code so they could learn about the logic, so, here's my commented 337-stroke version:
Code:

; begin Mayan Number Converter
;
;!
Function m($) ; - 57 stroke overhead

Dim $_,$C,$D

If VarType($)=8 ; is it a mayan string?

; Mayan to Decimal - 96 strokes
$D=1 ; initial multiplier value

; work from LSD to MSD
For $_=Len($) to 1 Step -1

; get Mayan char value based on string position
; InString will report 1, 2, 5, or 6 (delimiter)
$C=InStr('.:xx| ',SubStr($,$_,1))

If $C=6 ; Delimiter? move to next multiplier power of 20
$D=$D*20
Else ; is a vaid digit value - multipliy by current multiplier value
; and add to running total
$m=$m+$C*$D ; process value
EndIf

Next ; next string character

Else ; or a Decimal Value?

; Decimal to Mayan - 184 strokes
$D=64000000 ; highest divisor value for 7 digits

While $D>=1 ; loop while divisor is greater than 0
;While $D ; LATE! -3 strokes
; divide by max value, result will be between 0 and 19 - a Mayan "Digit"
$C=$/$D $=$ Mod $D

; If not zero, output the Mayan chars that make up this "digit"
If $C
$m=$m+$_+SubStr('.',1,$C Mod 5 Mod 2)+SubStr('::',1,$C Mod 5/2)+SubStr('|||',1,$C/5)
$_=' ' ; inter-digit space after the first one
Else
; if zero, output a zero only if other digits exist, eliminates leading "shells"
If $m $m=$m+' -' EndIf
EndIf

$D=$D/20 ; reduce the divisor by power of 20

Loop

; If no digits were generated, return only a null shell "digit"
$m=IIf($m='','-',$m)
;$m=IIf($m,$m,'-') ; LATE! -3 strokes

EndIf ; LATE! -5 strokes if removed

EndFunction
;!
;!
; end Mayan Number Converter

_________________________
Actually I am a Rocket Scientist! \:D