function grups()
{
    var input_elements = new Array('start_day','end_day','start_month','end_month','start_year','end_year','fac_ciudad');

    input_elements.each(function(elem){
    Event.observe(elem, 'change', fill_events, false);
    });
    
    manageRooms($('fac_ntickets').value);
}

function fill_events()
{
    if ( complete_date_interval() && complete_city() )
    {
        $('result_events').innerHTML = '<div style="text-align:center"><img src="img/loading.gif" /><p>' + translations['loading'] + '</p></div>';
        var date_b   = $('start_year').getValue() + '-' + $('start_month').getValue() + '-' + $('start_day').getValue();
        var date_e   = $('end_year').getValue() + '-' + $('end_month').getValue() + '-' + $('end_day').getValue();
        var city_id  = $('fac_ciudad').getValue();
        
        new Ajax.Updater('result_events','/'+codilang+'/'+codicurr+'/grups_seleccio',{method:'post', onComplete:put_nTickets, parameters:{
                                                                                        date_begin: date_b, 
                                                                                        date_end: date_e,
                                                                                        id_city: city_id
                                                                                            }});    
    }else{
        $('result_events').innerHTML = '<br><b>' + translations['escollir_ciutat'] + '</b>';
    }
}

function complete_date_interval()
{
    var year = $('start_year').getValue();
    var month = $('start_month').getValue();
    var day = $('start_day').getValue();
    var yearf = $('end_year').getValue();
    var monthf = $('end_month').getValue();
    var dayf = $('end_day').getValue();

    var oki = false;
    var okf = false;
    if( year && month && day ){
        if(!check_right_date( year, month, day )){
            alert(error_date_message);
            $('start_day').focus();
            return false;
        }else{
            oki=true;
        }
    }
    if( yearf && monthf && dayf ){
        if(!check_right_date( yearf, monthf, dayf )){
            alert(error_date_message);
            $('end_day').focus();
            return false;
        }else{
            okf=true;
        }
    }
    
    return oki && okf;
}


function check_right_date(yearfield, monthfield, dayfield){
    var dayobj = new Date(yearfield, monthfield-1, dayfield);
    var current = new Date();
    return dayobj.getTime() > current.getTime() && !((dayobj.getMonth()+1!=monthfield)||(dayobj.getDate()!=dayfield)||(dayobj.getFullYear()!=yearfield));
}

function check_interval(arr,begin,end)
{
    var ok = true;

    arr.each(function(element){
        value = $(element).getValue();
        ok = ok && (value >= begin) && (value <= end);
    });

    return ok;
}

function complete_city()
{
    return ( $('fac_ciudad').getValue().length > 0 );
}

function required_inputs()
{
    return ( complete_city() && complete_date_interval() );
}

function toggle_events(id_section)
{
    elem = 'events_' + id_section;
    $(elem).toggle();

    return false;
}

function toggle_event(id_event)
{
    elem = 'event_' + id_event;
    $(elem).toggle();

    return false;
}

function put_nTickets()
{
    n_tickets = $('fac_ntickets').getValue()
    if ( complete_date_interval() && complete_city() )
    {
        $$('select.n_tickets').each( function(element){ Form.Element.setValue(element,n_tickets)} );
    }
}


function checked_events()
{
    var checker_event = false;

    $$('input.check_event').each(function(element){ checker_event = ( (element.getValue() == "on") || checker_event );});

    return ( checker_event );
}

/*
    Checks that a date has been selected for all the EP's selected.
*/
function check_eps_dates_selected(){
    $$('input.check_event').each( function(e){
        if(e.getValue() == "on"){
            var l = e.name.split("_")
            if ($("is_permanent_"+l[2])){
                //Its permanent so check if the date is written.
                if( ($("date"+l[2]).getValue().length < 1) || !(check_ep_date($("date"+l[2]).getValue())) ){
                    $("date"+l[2]).focus();
                    throw "EPDateBlank";
                }
            }
        }
    });
    return true;
}

function check_ep_date(ep_date){
    date_array = ep_date.split('-');

    day   = date_array[0];
    monyh = date_array[1];
    year  = date_array[2];

    return check_right_date(year, month, day);
}

