﻿


function makevisible(cur,which){
strength=(which==0)? 1 : 0.2

//If (cur.style.MozOpacity)
if (cur.style.MozOpacity !== undefined)
cur.style.MozOpacity=strength 
else if (cur.filters)
cur.filters.alpha.opacity=strength*100
}


        
                  

/*   accordin pane     */

        var typeDependencies = ['AjaxControlToolkit.AccordionBehavior'];
        
        // Reference to the Test Harness
        var testHarness = null;
    
        // Controls in the test page
        var accordion = null;
        var boundAccordion = null;
        var xmlAccordion = null;
        var behavior = null;
        var btn;
        
        function setSelectedIndex(behavior, index) {
            return function() {
                behavior.set_SelectedIndex(index);
            };
        }
        
        function checkVisibility(behavior, expectedSelected) {
            return function() {
                var length = behavior.get_Count();
                for (var i = 0; i < length; i++) {
                    var height = behavior.get_Pane(i).content.offsetHeight;
                    if (i == expectedSelected) {
                        testHarness.assertNotEqual(height, 0, 'Height of pane ' + i + ' should not be 0');
                    } else {
                        testHarness.assertEqual(height, 0, 'Height of pane ' + i + ' is ' + height + ', not 0');
                    }
                }
            }
        }

        function checkHeaderCSS(behavior, expectedCSS) {
            return function() {
                var selectedIndex = behavior.get_SelectedIndex();
                var cssClass = behavior.get_Pane(selectedIndex).header.className;
                testHarness.assertEqual(cssClass, expectedCSS, 'Css class should be ' + expectedCSS + ' but it is ' + cssClass);
            }
        }
        
        function checkOpacity(behavior, index) {
            return function() {
                var pane = behavior.get_Pane(index);
                var opacity = 1;
                if (behavior.get_AutoSize() === AjaxControlToolkit.AutoSize.Fill) {
                    opacity = CommonToolkitScripts.getElementOpacity(pane.content._original);
                } else {
                    opacity = CommonToolkitScripts.getElementOpacity(pane.content);
                }
                testHarness.assertNotEqual(1, opacity);
            }
        }
        
        // Register the AlwaysVisibleControl test cases
        function registerTests(harness) {
            testHarness = harness;

            // Get the controls on the page
            accordion = testHarness.getElement("ctl00_ContentPlaceHolder1_MyAccordion");
            behavior = testHarness.getObject("<%= MyAccordion.ClientID %>_AccordionExtender");
            
     // removed some code
            var test = testHarness.addTest('Panes Exist after DataBind()');
            test.addStep(function(){testHarness.assertEqual(10, behavior.get_Count(), "Expected 10 panes in unbound Accordion, got " + behavior.get_Count());});
            
            var test = testHarness.addTest('Selected Index');
            test.addStep(checkVisibility(behavior, 0));
            test.addStep(checkHeaderCSS(behavior, 'accordionHeaderSelected'));
            
            var test = testHarness.addTest('Change Panes');
            test.addStep(checkVisibility(behavior, 0));
            test.addStep(setSelectedIndex(behavior, 1), function() { try { checkVisibility(behavior, 1)(); return true; } catch(ex) { return false; } }, 500, 5000);
            test.addStep(checkHeaderCSS(behavior, 'accordionHeaderSelected'));
            
            var test = testHarness.addTest('Fade Transitions');
            test.addStep(function() { behavior.set_FadeTransitions(true); });
            test.addStep(checkVisibility(behavior, 0));
            test.addStep(setSelectedIndex(behavior, 1), function() { try { checkVisibility(behavior, 1)(); return true; } catch(ex) { return false; } }, 500, 5000);
            test.addStep(checkOpacity(behavior, 0));
            
            var test = testHarness.addTest('AutoSize: None');             
            test.addStep(function() { behavior.get_element().style.height = '100px'; behavior.set_AutoSize(AjaxControlToolkit.AutoSize.None);});
            test.addStep(checkVisibility(behavior, 0));
            test.addStep(setSelectedIndex(behavior, 1), function() { try { checkVisibility(behavior, 1)(); return true; } catch(ex) { return false; } }, 500, 5000);
            test.addStep(function() { testHarness.assertTrue(behavior.get_element().offsetHeight > 100, 'Accordion should have a height greater than 100, it has ' +  behavior.get_element().offsetHeight); });
            
            var test = testHarness.addTest('AutoSize: Limit');             
            test.addStep(function() { behavior.get_element().style.height = '299px'; behavior.set_AutoSize(AjaxControlToolkit.AutoSize.Limit);});
            test.addStep(checkVisibility(behavior, 0));
            test.addStep(setSelectedIndex(behavior, 1), function() { try { checkVisibility(behavior, 1)(); return true; } catch(ex) { return false; } }, 500, 5000);
            test.addStep(function() { testHarness.assertTrue(behavior.get_element().offsetHeight <= 300, 'Accordion should have a height less than or equal to 300, not ' + behavior.get_element().offsetHeight); });
            
            var test = testHarness.addTest('AutoSize: Fill');             
            test.addStep(function() { behavior.get_element().style.height = '499px'; behavior.set_AutoSize(AjaxControlToolkit.AutoSize.Fill);});
            test.addStep(checkVisibility(behavior, 0));
            test.addStep(setSelectedIndex(behavior, 1), function() { try { checkVisibility(behavior, 1)(); return true; } catch(ex) { return false; } }, 500, 5000);
            test.addStep(function() { testHarness.assertTrue(behavior.get_element().offsetHeight <= 500, 'Accordion should have a height equal to 500, not ' + behavior.get_element().offsetHeight); });
            
            
            var test = testHarness.addTest('Index preserved on Postback');
            test.addStep(checkVisibility(behavior, 0));
            test.addStep(setSelectedIndex(behavior, 1), function() { try { checkVisibility(behavior, 1)(); return true; } catch(ex) { return false; } }, 500, 5000);
            test.addPostBack(btn);
            test.addStep(checkVisibility(behavior, 1));
        }
