// open child window
function dochild( url, target, style )
{
	params = '';
	if( style != '' )
	{
        s = 50;
        x = window.screenX + s;
        y = window.screenY + s;
        w = window.outerWidth - 2*s;
        h = window.outerHeight - 2*s;
        params = style+',width='+w+',height='+h+',top='+y+',left='+x;
    }
    newwindow = window.open( url, target, params );
    newwindow.focus();
}

// on load form function
function form_onload( logged )
{
    form_setfocus_auto( logged );
    usr_init();
}

// on load form function
function form_unload( logged )
{
    usr_exit();
}

// set focus into given field
function form_setfocus( id )
{
    if( document.getElementById( id ) )
    {
        document.getElementById( id ).focus();
    }
}

// set focus into the first available field
function form_setfocus_auto( logged )
{
    if( document.forms[0] )
    {
        for( i = 0; i < document.forms[0].elements.length; i++ )
        {
            element = document.forms[0].elements[i];
            if( ( element.type == "text" || element.type == "textarea" || element.type == "password" ) && !element.readOnly && !element.disabled && ( logged || element.value == "" ) )
            {
                element.focus();
                break;
            }
        }
    }
}

// disable all
function form_disableall()
{
    if( document.forms[0] )
    {
        for( i = 0; i < document.forms[0].elements.length; i++ )
        {
            element = document.forms[0].elements[i];
            if( element.id != "del" && element.type != "hidden" )
            {
                element.disabled = true;
            }
        }
    }
}

// check maydel value (updated by del_conf()) before submitting the form
function check_del()
{
    if( document.forms[0].maydel.value != '0' )
    {
        return true;
    }
    else
    {
        return false;
    }
}

// show warning message
function ShowMsg( msg )
{
    document.getElementById('qbgreg').style.visibility = "visible";
    document.getElementById('qbgreg2').style.visibility = "visible";
    document.getElementById('qbgreg2').innerHTML = msg;
}

// hide warning message
function HideMsg()
{
    document.getElementById('qbgreg').style.visibility = "hidden";
    document.getElementById('qbgreg2').style.visibility = "hidden";
}

// place warning message
function PlaceMsg( x, y )
{
	if( document.getElementById )
	{
        document.write('<img id="qbgreg" style="visibility:hidden; position:absolute; left:'+x+'px; top:'+y+'px" alt="" src="images/qbfreq.gif">');
        x += 65;
        y += 45;
        document.write('<p id="qbgreg2" style="visibility:hidden; position:absolute; left:'+x+'px; top:'+y+'px" >qbf</p>');
    }
}

// check mandatory field
function CheckField( fld, msg, prefix )
{
    if( fld.value == "" ) 
    {
        fld.focus();
        if( document.getElementById )
        {
            ShowMsg( prefix+msg );
            setTimeout( "HideMsg()", 1500 );
        }
        else
        {
            alert( theMessage );
        }
        return false;
    }
    else
    {
        return true;
    }
}

// check all mandatory fields, given by 2 arrays of (IDs, names)
function check_fields( form, ids, msgs, prefix )
{
    // deletion check first
    if( form.maydel && form.maydel.value >= 0 )
    {
        return check_del();
    }
    for( i = 0; i < ids.length; i++ )
    {
        if( !CheckField( eval( "form."+ids[i] ), msgs[i], prefix ) )
        {
            return false;
        }
    }
    return true;
}

// displays confirmation dialog and stores the answer into 'maydel' field of the form
function del_conf( s )
{
    if( s == "" )
    {
        s = 'Opravdu smazat záznam ?';
    }
    ret = window.confirm( s );
    if( ret )
    {
        document.forms[0].maydel.value = '1';
    }
    else
    {
        document.forms[0].maydel.value = '0';
    }
}

// disabled confirmation checking
function del_disable()
{
    if( document.forms[0].maydel )
    {
        document.forms[0].maydel.value = '-1';
    }
}

// allow only numeric input into the text field
function numeric( e )
{
    var key = 0;
    if( !e )
    {
        var e = window.event;
    }
    if( e.keyCode )
    {
        key = e.keyCode;
    }
    else if( e.which )
    {
        key = e.which;
    }
    if( key!=8 && key!=9 && key!=13 && key!=35 && key!=36 && key!=37 && key!=39 && key!=45 && key!=46 && ( key < 48 || key > 57 ) )
    {
        return false;
    }
}

// set disabled property of the element given by ID
function disable_id( id, value )
{
    if( document.getElementById( id ) )
    {
        document.getElementById( id ).disabled = value;
    }
}

// set named boolean property of the element given by ID
function boolattrib_id( id, name, value )
{
    if( document.getElementById( id ) )
    {
        strval = value ? 'true' : 'false';
        x = document.getElementById( id );
        eval( "x."+name+"="+strval );
    }
}

// check max. length on key pressed
function maxlength( e, field, maxchars )
{
    var key = 0;
    if( !e )
    {
        var e = window.event;
    }
    if( e.keyCode )
    {
        key = e.keyCode;
    }
    else if( e.which )
    {
        key = e.which;
    }
    // allow only backspace and delete keys when limit is reached
    if( field.value.length >= maxchars && key!=8 && key!=9 && key!=13 && key!=35 && key!=36 && key!=37 && key!=39 && key!=45 && key!=46 )
    {
        e.returnValue = false;
        return false;
    }
}  

// check max. length on clipboard paste
function maxlength_paste( e, field, maxchars )
{
    if( !e )
    {
        var e = window.event;
    }
    e.returnValue = false;
    if( window.clipboardData && ( field.value.length + window.clipboardData.getData( "Text" ).length ) > maxchars )
    {
        return false;
    }
    e.returnValue = true;
}

// maintains safety limit
function check_timeout( url, id, count )
{
    count -= 1000;
    if( document.getElementById( id ) )
    {
        // display time remaining
        var seconds = count / 1000;
        var sec = seconds % 60;
        var min = ( seconds - sec ) / 60;
        if( sec < 10 )
        {
            sec = "0" + sec;
        }
        document.getElementById( id ).firstChild.nodeValue = min+":"+sec;
    }
    if( count <= 0 )
    {
        // logout
        location.replace( url );
    }
    // schedule call to itself
    window.setTimeout( "check_timeout('"+url+"','"+id+"',"+count+")", 1000 );
}

// change image source
function changeimage( btn, img )
{
    if( btn && btn.src )
    {
        btn.src = img;
    }
}

