Not clear to me why you need to "send variables" between frames to accomplish what you have stated you need.
But in any case it's not hard. The only trick is making sure that both frames are fully loaded before you attempt this.
One way to do this is to invoke a function in the other frame, *AFTER* making sure the function exists there. (If not, use setTimeout to wait a quarter second and try again.)
And you could, for example, call a function in the leftFrame from code in the mainFrame by simply doing
var valueFromOtherFrame = parent.leftFrame.someFunction( );
As for having an <A> anchor reload the entire frameset instead of a single frame, just use
<a target="_top" href="whatever.html">
_top is a special target that means the topmost frame level.