The only safe way to parse a date string is to do it yourself. ES5 defines a standard string for Date.parse that is based on ISO8601 but it is not supported by all browsers in use, and your string isn't consistent with that format anyway.
Other string values "work" for a limited set of browsers, but that isn't a reliable strategy for a web application.
Parsing date strings is fairly simple: split up the bits, create a date object from the parts and apply an offset if required. So if your string is Mon, 01 Apr 2013 15:46:58 -0500 you can use a function like:
function parseDateString(s) {
var months = {jan:0,feb:1,mar:2,apr:3,may:4,jun:5,
jul:6,aug:7,sep:8,oct:9,nov:10,dec:11};
s = s.split(/[\s:]/);
var d = new Date(s[3], months[s[2].toLowerCase()], s[1], s[4], s[5], s[6]);
var sign = s[7]<0? 1 : -1;
var l = s[7].length;
// offsetMinutes is minutes to add to time to get UTC
var offsetMinutes = sign * s[7].substring(l-2,l) + sign * s[7].substring(l-4,l-2) * 60;
// Add offset and subtract offset of current timezone
d.setMinutes(d.getMinutes() + offsetMinutes - d.getTimezoneOffset());
return d;
}
var s = 'Mon, 01 Apr 2013 15:46:58 -0500'
alert(s + '\n' + parseDateString(s)); // Mon, 01 Apr 2013 15:46:58 -0500
// Tue Apr 02 2013 06:46:58 GMT+1000