onload_function_list = new Array();

function get_position( obj ) 
{
    var x = 0;
    var y = 0;
    
    do {
        x += obj.offsetLeft;
        y += obj.offsetTop;

    } while ( obj = obj.offsetParent );
 
    return { x: x, y: y };
}

function div_parent_position( parent, objdiv, x, y )
{
    var parent_pos  = null;
    
    parent_pos = get_position( parent );
    
    var w            = window;
    var window_body  = document.compatMode == 'CSS1Compat'
                       ? w.document.documentElement
                       : w.document.body;
    var window_width = window_body.clientWidth
                       ? window_body.clientWidth
                       : w.innerWidth;
    var obj_width = objdiv.clientWidth
                    ? objdiv.clientWidth
                    : objdiv.offsetWidth;
                    
    parent_pos.x += x;
    parent_pos.y += y;
    
    if ( ( parent_pos.x + obj_width ) > window_width ) {
        parent_pos.x = ( window_width - ( obj_width + 25 ) );
    }

    objdiv.style.left     = parent_pos.x;
    objdiv.style.top      = parent_pos.y;
}

function show_div( div, offset_x, offset_y, parent )
{
    var obj = $( div );
    var pos = null;
    if ( obj.style.display == 'none' || obj.style.display == '' ) obj.style.display = 'block';
    if ( typeof parent != 'undefined' ) {
        div_parent_position( $( parent ), obj, offset_x, offset_y );
    }
}
        
function close_div( div )
{
    $( div ).style.display = 'none';
}

function toggle( el )
{
    el.style.display = ( ( el.style.display == 'none' ) ? '' : 'none' );
    
    return ( ( el.style.display == 'none' ) ? false : true );
}

function onSubmitForm( button )
{
    if ( typeof( button ) != 'undefined' ) {
        button.disabled = true;
    }
}

function onload_functions()
{
    var size = onload_function_list.length;
    
    for ( var i = 0; i < size; i++ ) {
    
        onload_function_list[i]();
    }
}

window.onload = function() 
{
    onload_functions();
}


function createDepSelect( s_name, data )
{
    var select_e  = null;
    var size_data = 0;
    var item      = null;
    var item_data = null;
    
    var is_selected = false;
    
    if ( ! ( select_e = $( s_name ) ) || ! data ) { return ( false ); }
    
    item               = data[ s_name ];
    select_e.innerHTML = '';
    size_data          = item.data.length;
    
    addOption( select_e, 0, '...' );
    
    for ( var i = 0; i < size_data; i++ ) {
    
        if ( item.parent && item.dep_field ) {
            
            var parent_select = $( item.parent );
            
            if ( ! parent_select ) { return ( false ); }
            
            var dep_value = parent_select.options[ parent_select.selectedIndex ].value;
            
            if ( item.data[ i ][ item.dep_field ] == dep_value ) {
                
                is_selected = ( ( item.data[ i ][ item.value ] == item.cur_v ) ? true : false );
                
                addOption( select_e, item.data[ i ][ item.value ], item.data[ i ][ item.title ], is_selected );
                
            } else {
                
                continue;
            }
            
        } else {

            is_selected = ( ( item.data[ i ][ item.value ] == item.cur_v ) ? true : false );
            
            addOption( select_e, item.data[ i ][ item.value ], item.data[ i ][ item.title ], is_selected );
        }
    }
    
    if ( select_e.innerHTML == '' ) {
        addOption( select_e, 0, 'No data' );
    }
    
    if ( item.s_child ) {
    
        createDepSelect( item.s_child, data )
    }
};

function addOption( s, v, t, is_s )
{
    var option_item = document.createElement( 'OPTION' );
    option_item.setAttribute( 'value', v );
    
    if ( is_s ) {
        option_item.setAttribute( 'selected', true );
    }
    
    option_item.innerHTML = t;

    s.appendChild( option_item );
};

function addField( img, target_div )
{
    target_div = $( target_div );
    
    var is_open = false;
    
    if ( ! target_div ) { return ( false ); }
    
    is_open = toggle( target_div );
    
    addPicIcon( img, is_open );
};

function addPicIcon( img, is_open )
{
    var pic_add   = '/pic/icon/add.gif';
    var pic_close = '/pic/icon/minus.gif';
    
    if ( is_open ) {
        img.src = pic_close;
    } else {
        img.src = pic_add;
    }
};




