Parallax RFID Reader Integration

Why is it that any card that is scanned sets relayPin HIGH?

Maybe because of this:

if(code[10] == cardString[13])

The value in code[10] is undefined, because the array only holds 10 elements, in positions 0 thru 9. The value in cardString[13] is similarly undefined, because the array only holds 13 elements, in positions 0 thru 12.

If you want to compare two strings (lower case s/arrays of chars), you must use strvmp(), and the strings must be the same length.