var cvFormOldOnload = window.onload;

window.onload = function()
{
    if (typeof cvFormOldOnload == 'function')
    {
         cvFormOldOnload();
    }

    window.cvFormInstance = new cvForm();
    cvFormInstance.init();
}

cvForm = function ()
{
    this.form = null;

}

cvForm.prototype.init = function()
{
    this.form = document.getElementById('cv_form');
    if (!this.form)
    {
        return null;
    }
    var self = this;
    this.form.onsubmit = function ()
    {
        return self.isCvFormOk(this);
    }
    main = null;
    this.form.first_name.focus();
}

cvForm.prototype.isCvFormOk = function()
{
     if (
        (this.isFieldEmpty('first_name'))
        ||
        (this.isFieldEmpty('last_name'))
        ||
        (
            (this.isFieldEmpty('position'))
            &&
            (this.isFieldEmpty('position_other'))
        )
        ||
        (this.isFieldEmpty('agree'))
    )
    {
        this.throwError('required_fields');
        return false;
    }

    return true;
}

cvForm.prototype.isFieldEmpty = function(fieldName)
{
    var field = document.getElementById(fieldName);
    var tagName = field.tagName.toLowerCase();
    if (tagName == 'input')
    {
        if (
            (
                (field.type.toLowerCase() == 'text')
                &&
                (field.value.length < 1)
            )
            ||
            (
                (field.type.toLowerCase() == 'checkbox')
                &&
                (!field.checked)
            )
        )
        {
            return true;
        }
    }
    else if (tagName == 'select')
    {
        if (field.options[field.selectedIndex].value == "-1")
        {
            return true;
        }
    }
    return false;
}

cvForm.prototype.throwError = function(errorCode)
{
    var id = 'error_'.concat(errorCode);
    var el = document.getElementById(id);
    if ((!el) || (!el.value))
    {
        return false;
    }
    var msg = el.value;
    alert (msg);
    return true;
}
