
/*
 * Further extends the standard form validation class to check for multiple weeks/stations (which
 * isn't valid)
 */
 
var FormCompleteTopProgrammes = new Class({

    Extends: FormComplete,
    
    
 
    /**
     * Extends the base _check_valid() method to add checks for multiple weeks/stations.
     * If more than one station is selected there may only be one week selected.
     *
     * @return boolean
     */
    _check_valid: function() {

        // if the base validation fails, we can skip our checks and return
        // false immediately
        if(!this.parent()) {
            return false;
        }

        // determine how many weeks are selected - we check this first as there are only
        // going to be a maximum of 5 or so to look through so hopefully we can avoid
        // the station check later on if only one week is selected
        var arr_weeks = $('period_week').getElements('option');
        var int_weeks_selected = 0;
        
        for(var i = 0, ilen = arr_weeks.length; i < ilen; i++) {
            
            if(arr_weeks[i].selected == true) {
                int_weeks_selected++;
            }
            
            if(int_weeks_selected >= 2) {
                break;
            }
        }
        
        // if more than one week is selected, we need to ensure only one station is selected
        if(int_weeks_selected >= 2) {

            var arr_stations = $('station').getElements('option');
            var int_stations_selected = 0;
            
            for(var i = 0, ilen = arr_stations.length; i < ilen; i++) {
            
                if(arr_stations[i].selected == true) {
                    int_stations_selected++;
                }
            
	            if(int_stations_selected >= 2) {
	                break;
	            }
            }
            
            // multiple weeks and stations are selected - not a valid input
            if(int_stations_selected >=2) {
                return false;
            }
        }
        
        // all checks passed - valid!
        return true;
    }

});