I put everything in parentheses but code below still throws error in jslint:
Problem at line 5 character 104: The \'&&\' subexpression should be wrap
It's complaining about the form if(a && b && c || d) because (I suppose) it's not immediately obvious whether && or || will take precedence. Fix it to look like if(a && b && (c || d)) and it will stop complaining.
if(a && b && c || d)
&&
||
if(a && b && (c || d))