﻿function JumpToNextTab(AccordionPanelID, PageJumpHiddenFieldClientID, TabHiddenFieldClientID, ValidationGroup) {
    if ($("#" + PageJumpHiddenFieldClientID).val() == '0') {
        $("#" + PageJumpHiddenFieldClientID).val('1')
    }
    else {
        var PreviousTabIndex = $("#" + TabHiddenFieldClientID).val();
        var CurrentTabIndex = parseInt(PreviousTabIndex) + 1;
        var MaxTabIndex = $("#" + AccordionPanelID + " h3").length;
        if (MaxTabIndex > CurrentTabIndex) {
            changeTab(AccordionPanelID, PageJumpHiddenFieldClientID, TabHiddenFieldClientID, PreviousTabIndex, CurrentTabIndex, null, ValidationGroup);
        }
        else if (MaxTabIndex - 1 == PreviousTabIndex) {
        changeTab(AccordionPanelID, PageJumpHiddenFieldClientID, TabHiddenFieldClientID, PreviousTabIndex, false, null, ValidationGroup);
        }
    }
}

//AccordionPanelID: The accordion where the tab needs to change
//TabHiddenFieldClientID: The hidden field containing the current tab index
//PreviousTabIndex: the tab to jump from
//CurrentTabIndex: the tab to jump to
//SaveButtonID: The button to fire the click event
//pageJumpHiddenField: needed so a second tab change when the click event on the button is fired.
function changeTab(AccordionPanelID, PageJumpHiddenFieldClientID, TabHiddenFieldClientID, PreviousTabIndex, CurrentTabIndex, SaveButtonID, ValidationGroup) {
    
    //Check if page is valid (asp.net validation)
    //This sets the Page_IsValid var
    
    if (typeof (Page_ClientValidate) == 'function') {
        Page_ClientValidate(ValidationGroup);
    }
   
    
    if ((!Page_IsValid && ((ValidationGroup != null && ValidationGroup == '') || (ValidationGroup == null))) || (Page_IsValid) || PreviousTabIndex == '-1') {

        //do save is called when tabs are hit
        if (SaveButtonID != null && SaveButtonID != '') {
            $("#" + PageJumpHiddenFieldClientID).val('0');

            //will need the button to click!
            //alert(SaveButtonID);
            document.getElementById(SaveButtonID).click();
            
             $("#" + PageJumpHiddenFieldClientID).val('1');
        }


        if (PreviousTabIndex != CurrentTabIndex) {

            $("#" + AccordionPanelID).accordion('activate', CurrentTabIndex);
            $("#" + TabHiddenFieldClientID).val(CurrentTabIndex);
        }
        else {
            $("#" + AccordionPanelID).accordion('activate', false);
            $("#" + TabHiddenFieldClientID).val('-1');
        }

    }
}
