Why does the following JS boolean logic fail for everything other than where effectiveDateSelected = true and throughDateSelected = false
<p>I am a complete novice at Javascript and having tried every possible combination of Boolean expressions I am left with the following code. Why does the following JS boolean logic fail for everything other than where effectiveDateSelected = true and throughDateSelected = false</p>

<pre><code>            // initialisation  
            var effectiveDateSelected = new Boolean(false);
        var throughDateSelected = new Boolean(false);  

            // values read in from web page
            effectiveDateSelected = ...          
            throughDateSelected = ...

            // the logical expression 
        if ((effectiveDateSelected) &amp;&amp; !(throughDateSelected)) {
            reportNum = 1;
            alert("1 reportNum=" + reportNum);
        }

        if (!(effectedDateSelected)  &amp;&amp; (throughDateSelected)) { 
                            reportNum = 2;
            alert("2 reportNum=" + reportNum);
        }

        if (((effectedDateSelected)  &amp;&amp; (throughDateSelected)) || 
            (!(effectedDateSelected)  &amp;&amp; !(throughDateSelected))) {
            reportNum = 3;
            alert("3 reportNum=" + reportNum);
        }  
</code></pre>
