function isEmptyMandatory (field) {
    if (($('input[field='+field+']').attr('type')=='checkbox' || 
         $('input[field='+field+']').attr('type')=='radio') &&
         (typeof $('input:checkbox:checked[field='+field+']').val() =='undefined' &&
          typeof $('input:radio:checked[field='+field+']').val()=='undefined'))
        return true;
    if ($('input[field='+field+']').attr('type')=='text' && $('input:[field='+field+']').val()=='')
        return true;  
    if (typeof $('select[field='+field+']')!='undefined' && $('select:[field='+field+']').val()=='')
        return true;
    if (typeof $('textarea[field='+field+']')!='undefined' && $('textarea:[field='+field+']').val()=='')
        return true;
    return false;
}

function submitForm (frm) {
    var i, j, q,
        f = $(frm),
        fs = {},
        p = [], // Номера пустых обязательных полей. И групп.
        gr = {};
    $("div.form-err").hide();
    
    $("input[mandatory=1],textarea[mandatory=1],select[mandatory=1]", f).each(function(i){
        fs[$(this).attr('field')] = $(this).attr('field');
    });
    for (i in fs) 
        if (isEmptyMandatory(fs[i])) 
            p.push(fs[i]);

    $("div.mandatory-in-group", f).each(function (i) {
        var me = $(this),
            gid = parseInt(me.attr("mandatorygroup")),
            fld = $("input,textarea,select", $(this), true).attr("field");
        if (!gr[gid]) gr[gid] = [];
        gr[gid].push(fld);
    });
    for (i in gr) {
        q = false;
        for (j in gr[i]) {
            if (!isEmptyMandatory(gr[i][j])) {
                q = true;
                break;
            }
        }
        if (!q) p.push(i);
    }
    
    if (p.length > 0) {
        for (i=0; i<p.length; i++) 
            $("div.form-err[field=" + p[i] + "]").show();   
        return false;
    } 
    return true;
}

function reloadCaptcha () {
    $("img.captcha-img").attr("src", "/forms/kcaptcha_img/" + (new Date()).valueOf() + ".htm");
}

function fixTabFont (to) {
    if (!to || to < 9) return;
    var ts = $("#tab-panel .tabs .tab div").map(function () { return $(this).offset().top; });
    if (!ts.length || ts[ts.length-1] <= ts[0]) return;
    $("#tab-panel .tabs .tab div a").css("font-size", to + "px");
    fixTabFont(--to);   
}

$(function () {
    setTimeout(function () { fixTabFont(11); }, 1234);
});