////////////////////////////////////////////////////////////////////////
//
// Filename:    formcompinschrijven.js
// Purpose:     Create a form to subscribe to a personal championship
// Method:      JavaScript class
//
// Author:      J.van.der.Steen@gobase.org
// Date:        2010-03-07
//
// Note:        Requires prototype.js
//
////////////////////////////////////////////////////////////////////////

var FormPKInschrijven = Class.create( FormBase,
{

    initialize: function($super, values)
    {
        this.valAssign(values, "type", "pk inschrijven");

        $super(values);

        /*
         * Editable properties
         */
        this.propAdd( values
                    , "aanhef"
                    , { type     : 'select'
                      , key      : 'aanhef'
                      , val      : ''
                      , valid    : 1
                      , validator: null
                      , options  : [ { key: 'dhr' , val: 'dhr'  }
                                   , { key: 'mevr', val: 'mevr' }
                                   ]
                      }
                    ) ;
        this.propAdd( values
                    , "firstname"
                    , { type     : 'text'
                      , size     : 64
                      , key      : 'voornaam'
                      , val      : ''
                      , valid    : 1
                      , validator: 'validateNonempty'
                      }
                    ) ;
        this.propAdd( values
                    , "lastname"
                    , { type     : 'text'
                      , size     : 64
                      , key      : 'achternaam'
                      , val      : ''
                      , valid    : 1
                      , validator: 'validateNonempty'
                      }
                    ) ;
        this.propAdd( values
                    , "vereniging"
                    , { type     : 'text'
                      , size     : 64
                      , key      : 'vereniging'
                      , val      : ''
                      , valid    : 1
                      , validator: 'validateNonempty'
                      }
                    ) ;
        this.propAdd( values
                    , "phone"
                    , { type     : 'text'
                      , size     : 64
                      , key      : 'telefoonnummer'
                      , val      : ''
                      , valid    : 1
                      , validator: 'validatePhone'
                      }
                    ) ;
        this.propAdd( values
                    , "email"
                    , { type     : 'text'
                      , size     : 64
                      , key      : 'e-mail adres'
                      , val      : ''
                      , valid    : 1
                      , validator: 'validateEmail'
                      }
                    ) ;
        this.propAdd( values
                    , "competitie"
                    , { type     : 'select'
                      , key      : 'klasse'
                      , val      : ''
                      , valid    : 1
                      , validator: null
                      , options  : this.getLegalCompetitionValues()
                      }
                    ) ;
        this.propAdd( values
                    , "opmerkingen"
                    , { type     : 'textarea'
                      , rows     : 5
                      , cols     : 64
                      , key      : 'voorkeur speeldag/locatie'
                      , val      : ''
                      , valid    : 1
                      , validator: null
                      }
                    ) ;

        /*
         * System properties
         */
        this.propAdd( values
                    , "functionaris"
                    , { type     : 'hidden'
                      , size     : 64
                      , key      : 'functionaris'
                      , val      : 'pk'
                      , valid    : 1
                      , validator: 'validateNonempty'
                      }
                    ) ;

        /*
         * Buttons
         */
        this.propAdd( values
                    , "versturen"
                    , { type     : 'button'
                      , size     : 32
                      , key      : 'versturen'
                      , val      : 'versturen'
                      , valid    : 1
                      , validator: 'validateNonempty'
                      , onclick  : 'save'
                      }
                    ) ;

        /**
         * Title of this form
         */
        this.setTitle('Inschrijving Persoonlijk Kampioenschap KNBB district Amsterdam');

    }

,   getLegalCompetitionValues: function()
    {
        var values = [];

        values.push({ key: 'libre6'        , val: 'libre 6de klasse (0.00-0.80)'               });
        values.push({ key: 'libre5'        , val: 'libre 5de klasse (0.80-1.25)'               });
        values.push({ key: 'libre4'        , val: 'libre 4de klasse (1.25-1.70)'               });
        values.push({ key: 'libre3'        , val: 'libre 3de klasse (1.70-2.50)'               });
        values.push({ key: 'libre2'        , val: 'libre 2de klasse (2.50-4.00)'               });
        values.push({ key: 'libre1'        , val: 'libre 1ste klasse (4.00-7.00)'              });
        values.push({ key: 'band5'         , val: 'bandstoten 5de klasse (0.25-1.00)'          });
        values.push({ key: 'band4'         , val: 'bandstoten 4de klasse (1.00-1.50)'          });
        values.push({ key: 'band3'         , val: 'bandstoten 3de klasse (1.50-2.30)'          });
        values.push({ key: 'band2'         , val: 'bandstoten 2de klasse (2.30-3.50)'          });
        values.push({ key: 'band1'         , val: 'bandstoten 1ste klasse (3.50-6.00)'         });
        values.push({ key: 'driebandklein3', val: 'driebanden klein 3de klasse (0.250-0.400)'  });
        values.push({ key: 'driebandklein2', val: 'driebanden klein 2de klasse (0.400-0.550)'  });
        values.push({ key: 'driebandklein1', val: 'driebanden klein 1ste klasse (0.550-0.750)' });
        values.push({ key: 'driebandgroot3', val: 'driebanden groot 3de klasse (0.300-0.475)'  });
        values.push({ key: 'driebandgroot2', val: 'driebanden groot 2de klasse (0.475-0.550)'  });
        values.push({ key: 'driebandgroot1', val: 'driebanden groot 1ste klasse (0.550-0.750)' });
        values.push({ key: 'kader3'        , val: 'kader 38/2 3de klasse (7.00-11.00)'         });
        values.push({ key: 'kader2'        , val: 'kader 38/2 2de klasse (12.00-18.00)'        });
        values.push({ key: 'kader1'        , val: 'kader 38/2 1ste klasse (18.00-...)'         });

        return values;
    }

} ) ;

function emitPKinschrijven()
{
    var form = new FormPKInschrijven({});
    var html = '';

    html += "<div id='pkinschrijven-header'></div>\n";
    html += form.edit();
    html += "<div id='pkinschrijven-footer'></div>\n";

    Element.update('content', html);

    setTimeout( "contentLoadExec( { target  : 'pkinschrijven-header'"
              + "                 , filename: 'pk/inschrijven-header.phtml'"
              + "                 } )"
              , 250
              ) ;
    setTimeout( "contentLoadExec( { target  : 'pkinschrijven-footer'"
              + "                 , filename: 'pk/inschrijven-footer.phtml'"
              + "                 } )"
              , 250
              ) ;
}



